Rad*_*ith 0 javascript object ecmascript-6
假设我正在使用一个揭示模块模式并具有嵌套函数,如:
function outer () {
function a () {}
function b () {}
function c () {}
}
Run Code Online (Sandbox Code Playgroud)
我可以用对象简写来揭示这些函数:
return { a, b, c };
或者我是否需要将它们绑定到变量,如:
var a = function a () {};
var b = function b () {};
Run Code Online (Sandbox Code Playgroud)
我可以用对象速记显示这些函数,如:
Run Code Online (Sandbox Code Playgroud)return { a, b, c };
是.像你的问题中的那些函数声明创建了一个标识符(函数名)与当前词法环境对象中的值(函数对象)的绑定; 这些绑定就像变量创建的绑定一样,可以与新的ES2015简写对象表示法一起使用.
示例(您需要使用支持ES2015简写表示法的浏览器;任何最近的Chrome或Firefox都可以使用):
function outer () {
function a () { console.log("a"); }
function b () { console.log("b"); }
function c () { console.log("c"); }
return {a, b, c};
}
const o = outer();
o.a(); // "a"Run Code Online (Sandbox Code Playgroud)