Javascript 对象中的命名函数?为什么这行得通?
Named function inside a Javascript object? Why does this work?
我在写一些代码时偶然发现了这个:
var obj = {
myFunc() {
document.body.innerHTML = 'Hello World!';
}
};
obj.myFunc();
我想输入的是:
var obj = {
myFunc: function() {
// ...
}
};
我没有注意到我不小心输入了第一个,直到我意识到我的代码不是 运行 在 IE11 中。
为什么第一个示例在 Chrome/Firefox 而不是 IE11 中工作?
此外,如果这是官方语言功能,这叫什么?
这是一个 Enhanced Object Literal, which is es6 syntax. More formally, Object Initializers allow Method Definitions 而不是像以前的版本那样只有 key/value 对。
This table 讲述了 'object literal extensions' 下的兼容性故事。简短的回答是 IE11 尚未实现该功能。
我在写一些代码时偶然发现了这个:
var obj = {
myFunc() {
document.body.innerHTML = 'Hello World!';
}
};
obj.myFunc();
我想输入的是:
var obj = {
myFunc: function() {
// ...
}
};
我没有注意到我不小心输入了第一个,直到我意识到我的代码不是 运行 在 IE11 中。
为什么第一个示例在 Chrome/Firefox 而不是 IE11 中工作?
此外,如果这是官方语言功能,这叫什么?
这是一个 Enhanced Object Literal, which is es6 syntax. More formally, Object Initializers allow Method Definitions 而不是像以前的版本那样只有 key/value 对。
This table 讲述了 'object literal extensions' 下的兼容性故事。简短的回答是 IE11 尚未实现该功能。