我正在做一個簡單的JS樹庫,所以我可以動態地創建分層數據的標記。爲什麼我的構造函數的「this」變量保持私有?
問:爲什麼「var that = this;」當我使用Tree構造函數返回一個新的對象實例時,保持私有狀態?我很高興「這個」是私人的,但我不知道爲什麼它是私密的。思考?
function Tree(data, containerId) {
var that = this; // Private variable. Not returned by constructor, because... ???
this.data = data;
this.container = document.getElementById(containerId);
this.selectedNodeId = null;
this.container.addEventListener('click', function (e) {
that.selectedNodeId = e.target.getAttribute('id');
console.log(that.selectedNodeId);
});
}
我建議閱讀關閉。 ---爲什麼使用'that'而不是'this'? – evolutionxbox
簡短的答案關閉。長的答案關閉。 – Darkrum
您是否使用過'new'運算符的構造函數,例如:'new Tree()' – Slim