Javascript对象中的命名函数?为什么这样做?

时间:2017-01-06 19:56:55

标签: javascript internet-explorer-11 anonymous-function

在写一些代码时偶然发现了这一点:

var obj = {
  myFunc() {
    document.body.innerHTML = 'Hello World!';
  }
};

obj.myFunc();

我打算输入的是:

var obj = {
  myFunc: function() { 
    // ...
  }
};

我没有注意到我意外地键入了第一个,直到我意识到我的代码没有在IE11中运行。

为什么第一个示例适用于Chrome / Firefox,而不适用于IE11?

另外,如果这是官方语言功能,这叫什么

1 个答案:

答案 0 :(得分:3)

它是Enhanced Object Literal,这是es6语法。更正式的是,Object Initializers允许Method Definitions而不是像之前版本中那样仅使用键/值对。

This table讲述了对象文字扩展名下的兼容性故事'。简短的回答就是IE11没有实现该功能。