在写一些代码时偶然发现了这一点:
var obj = {
myFunc() {
document.body.innerHTML = 'Hello World!';
}
};
obj.myFunc();
我打算输入的是:
var obj = {
myFunc: function() {
// ...
}
};
我没有注意到我意外地键入了第一个,直到我意识到我的代码没有在IE11中运行。
为什么第一个示例适用于Chrome / Firefox,而不适用于IE11?
另外,如果这是官方语言功能,这叫什么?
答案 0 :(得分:3)
它是Enhanced Object Literal,这是es6语法。更正式的是,Object Initializers允许Method Definitions而不是像之前版本中那样仅使用键/值对。
This table讲述了对象文字扩展名下的兼容性故事'。简短的回答就是IE11没有实现该功能。