我要在单击时创建一个自定义对象,然后尝试访问它的原型方法。
$(function(){
$('.addtask').on("click", function(){
var new_task = new Task();
$('.deletetask').on("click", function(){
new_task.deleteTask();
});
function Task(){
this.html="<li>Add Description<span class='deletetask'></span></li>";
}
Task.prototype = {
constructor: Task,
deleteTask: function(){
this.remove()
},
}
});
});
现在,当我单击类deleteTask时,它说:
TypeError: new_task.deleteTask is not a function
new_task.deleteTask();
如何访问原型方法deleteTask()?
最佳答案
创建Task
后,您将设置new Task
的原型。您不会通过这样做来更改已创建实例的原型,因为原型是在实例创建时引用的。
在创建Task.prototype = {
之前移动new Task
分配。
如果确实要在创建所有实例后向所有实例添加函数,请更改构造函数的原型,而不是替换它:
Task.prototype.deleteTask = function(){...