[英]How to access method variables from within an anonymous function in JavaScript?
[英]How access to variables within an anonymous function?
我在變量GLOBAL
內有一個匿名函數。
var GLOBAL = function (){
var func1 = function(){
console.log("function 1 go!")
}
var func2 = function(){
console.log("function 2 go!")
}
return {
init: function(){
func1();
}
}
}()
在我的init函數中返回func1
,將其調用為GLOBAL.init();
。
我的問題是:如何直接調用函數,例如GLOBAL.func1()
或GLOBAL.func2()
。
您必須返回函數引用,
var GLOBAL = function (){
var func1 = function(){
console.log("function 1 go!");
}
var func2 = function(){
console.log("function 2 go!")
}
return { func1,func2 };
}();
現在,您可以像GLOBAL.func1()
和GLOBAL.func2()
一樣訪問它。 並且不要與語法{ func1,func2 };
混淆{ func1,func2 };
。 這與{ func1 : func1,func2 : func2 };
非常相似{ func1 : func1,func2 : func2 };
我只是使用了ES6中引入的速記。
你不能 它們是局部范圍的變量。 在功能之外無法訪問是重點。
如果希望它們可訪問,則需要使它們如此明確(就像您為分配給init
的匿名函數所做的那樣)。
您應該在返回的對象中顯式添加這些功能。 在此代碼中,您仍然可以繼續執行init()作為對象初始化。
var GLOBAL = function (){ var func1 = function(){ console.log("function 1 go!") }; var func2 = function(){ console.log("function 2 go!") } return { init: function(){ this.func1(); }, func1, func2 } }(); GLOBAL.func1(); GLOBAL.func2();
希望對您有所幫助:D
如果可以幫助您,則可以采用模塊化方法:
var GLOBAL = {
func1: function(){
console.log("function 1 go!")
},
func2: function(){
console.log("function 2 go!")
}
}
GLOBAL.func1();
GLOBAL.func2();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.