如何在以下代码中从外部调用内部函数?
(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/