假设我正在使用揭示模块模式并具有嵌套函数,例如:
function outer () {
function a () {}
function b () {}
function c () {}
}
我可以用对象简写来揭示这些函数吗,例如:
返回{a,b,c};
或者我需要将它们绑定(bind)到一个变量,例如:
var a = function a () {};
var b = function b () {};
最佳答案
can i reveal those functions with object shorthand like:
return { a, b, c };
是的。每个函数声明(如您问题中的函数声明)都会创建标识符(函数名称)到当前 lexical environment object 中的值(函数对象)的绑定(bind)。 ;这些绑定(bind)就像变量创建的绑定(bind)一样,可以与新的 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"
关于javascript - 如何对未在对象中声明的函数使用对象简写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41780123/