在Javascript中我已經定義的對象是這樣的:在面向對象的Javascript傳遞對象構件的方法的事件處理程序
function myObject() {
this.x = 5;
window.addEventListener("resize", this.resizeHandler);
}
myObject.prototype.doSomething = function() {
alert(this.x);
}
myObject.prototype.resizeHandler = function() {
this.doSomething(); // Here occurs error.
}
var obj = new myObject();
但是我運行到錯誤消息「未捕獲類型錯誤:未定義是不是一個函數」 。問題是「爲什麼?」解釋會很棒!
在此先感謝。
*「解釋會很棒!」*解釋是你傳遞函數而不是對象。函數本身就是對象,可以像任何其他對象一樣傳遞和引用。正因爲如此,您可以讓多個對象引用相同的函數,或者沒有引用它的對象。沒有「所有者」對象這樣的東西。因爲函數中'this'的值通常是基於該函數的調用方式,所以需要以這種方式調用它,以便隱式或顯式地「告訴」函數「this」值應該是什麼。 – 2014-09-28 18:57:00