阅读本文时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/