3
我試圖返回一個變量設置後,作爲一個屬性的IIFE的初始化。問題是如果我直接綁定變量,我得到一個空對象。如果我通過函數來綁定它,我會得到我想要的結果。返回一個變量作爲一個屬性在一個IIFE
var Application = (function(){
var localInformation = {};
function init(){
localInformation = _demoApiCall();
}
function _demoApiCall(){
// Pretend this method isn't here, and returns a complex object
return {
name: "Demo"
}
}
function doWork(){
// localInformation is properly structured here if called
}
return {
Init: init,
DoWork: doWork,
InfoProp: localInformation, // returns {}
InfoMethod: function(){
return localInformation; // returns {name:"demo"}
}
}
})();
Application.Init();
console.log(Application.InfoProp);
console.log(Application.InfoMethod());
後的文件準備好開始調用Application.Init()
,如果我叫var inf = Application.InfoMethod()
的例子只會工作,但是這將是更清潔的,如果我可以打電話給var info = Application.InfoProp
。
我試着去讀JS關閉,但沒有得到任何信息,爲什麼沒有適當的引用私有變量。
我的意思寫的'localInformation',但是我已經更新了我的例子有正在運行的代碼。我從來沒有在返回中看到過'get'關鍵字,如果它有效,它肯定會使用它。你介意解釋一下它是什麼,它比它表明的更瘋狂嗎? – TheGeekZn
MDN解釋它比我所能做的更好:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get – lordvlad
看起來你不能在參考名稱前面使用'get' 。它基本上適用於我,如果我像這樣使用它: '上下文:{get Current(){ return current; }}' – TheGeekZn