你好
我不明白它在下面的代码中sender
参数的作用。
事件.js::--
var Event = function (sender) {
this._sender = sender;
this._listeners = [];
}
Event.prototype = {
attach: function (listener) {
this._listeners.push(listener);
},
notify: function (args) {
for (var i = 0; i < this._listeners.length; i += 1) {
this._listeners[i](this._sender, args);
}
}
};
而在
型号.js::--
var Model = function(){
this.addTaskEvent = new Event(this);
this.setTasksAsCompletedEvent = new Event(this);
this.deleteTasksEvent = new Event(this);
}
为什么在活动中需要模型this
.js?
有人可以描述一下吗?
提前致谢
这段代码是Javascript中面向对象编程的一个示例。此示例中的构造函数是 Event 函数。为了访问原型方法中的 sender 参数,必须将 sender 附加到构造函数上的属性。如果没有该步骤,发件人将未定义。这就是为什么他们将this._sender设置为等于发件人的原因。
此外,创建方法的方式称为伪经典实例化。这里有一篇关于javascript实例化的很棒的文章 http://callmenick.com/post/instantiation-patterns-in-javascript。