如何在另一个函数内调用javascript函数

时间:2015-07-13 13:38:27

标签: javascript

我有这样的事情:

var yourNamespace = {

    foo: function() {
        .....
    },

    bar: function() {
        function foobar() {....
        }
    }
};

是否有可能在foo内部调用,bar内的foobar函数?

2 个答案:

答案 0 :(得分:2)

这只是一个简单的模块模式。你应该做的是使它成为自己的模块,并从该模块返回foobar。例如:

var yourNamespace = {

    foo: function() {
        this.bar.foobar();
    },

    bar: {
        abc: '',
        foobar: function() {
            console.log('do something');
        }
    }
};

或者你可以做更像这样的事情:

var yourNamespace = {
    foo: function() {
        var bar = this.bar();
    },
    bar: function() {
        var abc = '';
        function foobar() {
            console.log('return abc or do something else');
            return abc;
        }
        return {
            foobar: foobar
        }
    }
};

答案 1 :(得分:1)

根据您的确切结构,您无法做到这样的事情:

var yourNamespace = {
   foo: function() {
        ..... 
        yourNamespace.foobar()
    },
    bar: function() {
       function foobar() {....}
       yourNamespace.foobar = foobar;
    }
};

或更好,(IMO):

var yourNamespace = {
   foo: function() {
        ..... 
        yourNamespace.bar.foobar()
    },
    bar: function() {
       yourNamespace.bar.foobar =  function() {....}

    }
};

请注意:在这两种情况下,bar()必须在foo()之前运行,否则foobarundefined