如何在以下代码中从外部调用内部函数?

(function (){
    var funOne = {
        funTwo : function (){
            var funFour = function(){
                console.log('inner function working');
            }
        },
        funThree : function () {
            console.log('working');
        }
    }
    funOne.funTwo(); // works
    funOne.funThree(); // works again
    funOne.funTwo.funFour(); // throwing exception

    })();

最佳答案

通过尝试将funTwo定义为函数(funOne.funTwo())和对象(funOne.funTwo.funFour()),funFour有一个范围问题。

这是2个可以访问funFour的选项:


让funTwo使funFour在更易访问的级别上可访问(例如,通过funOne)。
在对象内有funTwo返回funFour。您仍然必须添加括号以在输出中实际调用funTwo()


如何改变乐趣二:

    funTwo : function (){
        var funFour = function(){
            console.log('inner function working');
        };
        funOne.funFour = funFour; // Option 1
        return { 'funFour': funFour }; // Option 2
    },


如何调用每个选项:

funOne.funFour(); // Option 1
funOne.funTwo().funFour(); // Option 2

关于javascript - 如何在另一个函数内部访问一个函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30722721/

10-09 23:14