在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