我在Firefox和Chrome Dev Console中输入了这个表达式,我想知道为什么它是有效的JavaScript:
var x = { a (b) {} };
console.log(x);
Run Code Online (Sandbox Code Playgroud)
x然后将其设置为具有属性"a"的对象,该属性包含具有参数标识符"b"的名为"a"的函数.这个有效的JavaScript语法怎么样?"a"后冒号丢失,我不理解函数定义.
nic*_*ank 34
这是ES6/ES2015的合成糖(属性简写).使用ES6:
const obj = {
a(b) {
// Shorthand method
// `this` context is `obj`
},
c
};
Run Code Online (Sandbox Code Playgroud)
等于
var obj = {
a: function a(b) {
},
c: c
};
Run Code Online (Sandbox Code Playgroud)
在JavaScript中,当你写:
var x = { a (b) {} };
Run Code Online (Sandbox Code Playgroud)
它会将其视为:
var x = {
a: function (b) {
}
}
Run Code Online (Sandbox Code Playgroud)
例如,您可以检查这一点,它将清除您的疑问:
var x = { a (b) { console.info('function called') } };
x.a();
Run Code Online (Sandbox Code Playgroud)
这将调用分配给aobject 属性的函数x.
| 归档时间: |
|
| 查看次数: |
2041 次 |
| 最近记录: |