javascript - 在 Javascript 中定义对象方法的两种方式有什么区别?

标签 javascript function object

阅读本文时https://medium.com/javascript-scene/the-single-biggest-mistake-programmers-make-every-day-62366b432308通过 Eric Elliot,我遇到了以下类型的对象方法定义。

var obj = {
  getX() {
    document.write('X');
  }
}

obj.getX(); // X

它与以下类型的定义有何不同?

var obj = {
  getX: function getX() {
    document.write('X');
  }
}

obj.getX(); // X

最佳答案

第一个符号是 ES2015/ES6 简写符号,在 safari 或 internet explorer 中不起作用

文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions

因为第一个是第二个的速记符号,这意味着就功能而言没有区别 - 然而,直到 Internet Explorer 死掉并被埋葬并且 Safari catch (或跟随) internet explorer to the same grave)第一个符号不推荐用于面向公众的站点,因为不可能使用“填充”或“polyfill”进行语法更改

最重要的是,大多数“原生移动”浏览器不支持这一点(不是在谈论 chrome/firefox for android 等)

关于javascript - 在 Javascript 中定义对象方法的两种方式有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33579551/

相关文章:

javascript - 'simple' 正则表达式的负后视工作

javascript - 以数组为值对 javascript 对象进行排序

c# - 如何在 C# 中将不同的对象传递给同一个函数

javascript - 在javascript中向对象添加对象

javascript - 向现有 Firebase 添加新的键值对

javascript - 我如何在 AngularJS 中需要多个输入字段?

javascript - 列出存储的记录 localStorage |谷歌浏览器扩展

function - Go中区分函数和方法的具体原因是什么?

c - 函数导致通过引用传递的变量出现意外行为

javascript - JS : If variable gets object from a function, 变量是否存储对象的内容或对象的链接?