我在javascript中使用'this'有一個令人困惑的問題。我有一個方法'get_data',它返回一些對象的成員變量。有時它會將對象本身返回給我...我不知道爲什麼。有人可以解釋這裏發生了什麼嗎?this in javascript
function Feed_Item(data) {
this.data = data;
this.get_data = function() {
return this.data;
}
this.foo = function() {
return this.foo2();
}
this.foo2 = function() {
//here type of this.data() == Feed_Item!!! It should be of type Data
}
this.bar = function() {
//here type of this.data() == Data, as I'd expect
}
}
你必須向我們展示調用方法的代碼 - 因爲這個調用依賴於它可能會產生影響。另外,什麼'this.data()'?除'data'參數外,您沒有名爲'data'的函數。數據是一個函數嗎? – ZenMaster
函數的this關鍵字的值完全取決於它的調用方式。閱讀['this'關鍵字的答案,不清楚](http://stackoverflow.com/questions/5429739/this-keyword-not-clear)。 – RobG
你真的需要'this.get_data()'嗎?你不能只調用'this.data'嗎?這看起來像你在Java/C++中會做的一些屬性是私有的。 – puk