在创建JavaScript工厂函数时,我被告知返回语法如下所示:
function FF(constructorArg) {
var _privateName = constructorArg;
var publicMessage = "Hello StackOverflow";
function publicMethodGetName() {
return _privateName;
}
return {
publicMethodGetName: publicMethodGetName,
publicMessage: publicMessage
};
}
但是,我刚刚注意到我可以简化返回以下内容:
return { publicMethodGetName, publicMessage };
它仍然有效。
使用这种更简单的语法是否有任何意想不到的副作用,或者它可以使用吗?
答案 0 :(得分:2)
这是ECMAScript2015(a.k.a.ES6)引入的定义对象文字属性的简写语法。唯一可能的问题是环境支持。环境应该支持此功能。
为了支持基于ES5的环境,您可以使用ES6转换程序并将代码转换为ES5。
答案 1 :(得分:1)
这是新的es6语法。除非您编译为es5,否则只有一些浏览器会支持它。请参阅兼容性表:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer