Javascript 如何访问另一个函数中的函数
在下面的代码中,如何从外部调用内部函数Javascript 如何访问另一个函数中的函数,javascript,Javascript,在下面的代码中,如何从外部调用内部函数 (function (){ var funOne = { funTwo : function (){ var funFour = function(){ console.log('inner function working'); } }, funThree : function () { cons
(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
})();
您在funFour中遇到了一个范围问题,试图将funTwo act定义为函数(
funOne.funTwo()
)和对象(funOne.funTwo.funFour()
)
以下是访问funFour的两个选项:
funtwow()
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
无法从外部访问函数funTwo的局部变量(var funtfour)。如果要在funTwo函数外部使用funFour,则需要将funFour声明为全局变量 编辑的代码在这里
(function (){
var funFour;
var funOne = {
funTwo : function (){
funFour = function(){
console.log('inner function working');
}
},
funThree : function () {
console.log('working');
}
}
funOne.funTwo(); // works
funOne.funThree(); // works again
funFour(); // Call function funFour here
})();
你应该给funOne起一个不同的名字-它不是一个函数。选项2运行良好。但是,我无法运行选项1。