2017-04-02 62 views
1

如何訪問刪除確認功能中的私有變量「狀態」。 「this」關鍵字將我指向窗口對象。模塊模式上下文問題

var usersController = (function() { 
    var state = {}, 

    init = function(defaultState) { 
     state = defaultState; 

     $(".btn-delete-row").on("click", function() { 
     var recordId = $(this).attr("data-record-id"); 
     showDeleteConfirmation(recordId); 
     }); 
    }, 

    showDeleteConfirmation = function(recordId) { 
     //how to access state private variable here??? 
    }; 

    return { 
    init: init 
    }; 
}()); 

,我這樣稱呼它:

$(function() { 
    usersController.init({ 
    urls: { 
     deleteRecord: "...." 
    } 
    }); 
}); 
+0

如果我嘗試在showDeleteConfirmation進入狀態,我得到「的ReferenceError:狀態沒有定義」 – gigi

+0

爲什麼會出現後'VAR狀態= {}'逗號? – jakeehoffmann

+0

因爲state,init和showDeleteConfirmation是逗號分隔的變量。 (成員和函數) – gigi

回答

1

變量state隨時隨地都可裏面usersController

嘗試:

showDeleteConfirmation = function(recordId) { 
     console.log(state); 
}; 

DEMO