如何使用对象短手与未在对象

时间:2017-01-21 13:49:51

标签: javascript object ecmascript-6

说我使用了一个揭示模块模式并具有嵌套函数,如:

function outer () {
    function a () {}
    function b () {}
    function c () {}
}

我可以用对象简写来揭示这些函数,如: return { a, b, c }; 或者我需要将它们绑定到变量,如:

var a = function a () {};
var b = function b () {};

2 个答案:

答案 0 :(得分:5)

  

我可以用对象速记显示这些函数,如:

return { a, b, c };

是。像你的问题中的那些函数声明创建了一个标识符(函数名)与当前lexical environment object中的值(函数对象)的绑定;这些绑定就像变量创建的绑定一样,可以与新的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"

答案 1 :(得分:0)

一个简单的解决方案是测试它:https://jsfiddle.net/cuvvn2sw/1/

所以是的,这将起作用

(代码:

function outer () {
    function a () {
    alert('a');
    }
    function b () {
    alert('b');}
    function c () {
    alert('c');}

    return {a,b,c};
}

var fcts = outer();

fcts.a();
fcts.b();
fcts.c();