对象文字 属性 值 Shorthand
Object Literal Property Value Shorthand
在创建 JavaScript 工厂函数时,我被告知 return 语法如下所示:
function FF(constructorArg) {
var _privateName = constructorArg;
var publicMessage = "Hello Whosebug";
function publicMethodGetName() {
return _privateName;
}
return {
publicMethodGetName: publicMethodGetName,
publicMessage: publicMessage
};
}
但是,我刚刚注意到我可以将 return 简化为以下内容:
return { publicMethodGetName, publicMessage };
它仍然有效。
使用这种更简单的语法是否有任何意想不到的副作用,或者可以使用吗?
这是ECMAScript2015 (a.k.a.ES6)引入的定义对象字面量属性的shorthand语法。唯一可能的问题是环境支持。环境应该支持这个特性。
为了支持基于 ES5 的环境,您可以使用 ES6 转译器并将代码转换为 ES5。
这是新的 es6 语法。除非你编译为 es5,否则只有一些浏览器会支持它。查看兼容性 table:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer
在创建 JavaScript 工厂函数时,我被告知 return 语法如下所示:
function FF(constructorArg) {
var _privateName = constructorArg;
var publicMessage = "Hello Whosebug";
function publicMethodGetName() {
return _privateName;
}
return {
publicMethodGetName: publicMethodGetName,
publicMessage: publicMessage
};
}
但是,我刚刚注意到我可以将 return 简化为以下内容:
return { publicMethodGetName, publicMessage };
它仍然有效。
使用这种更简单的语法是否有任何意想不到的副作用,或者可以使用吗?
这是ECMAScript2015 (a.k.a.ES6)引入的定义对象字面量属性的shorthand语法。唯一可能的问题是环境支持。环境应该支持这个特性。
为了支持基于 ES5 的环境,您可以使用 ES6 转译器并将代码转换为 ES5。
这是新的 es6 语法。除非你编译为 es5,否则只有一些浏览器会支持它。查看兼容性 table:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer