这是我的班级
function User(){
this.nickname='nickname';
}
User.prototype.save=function(){
dosomething();
};
User.prototype.add=function(){
dosometing();
call save();
};
我想在add()函数中调用save()函数,但我不知道该怎么做。我试过了
User.prototype.add=function(){
save();
};
和 User.prototype.add =函数(){ User.prototype.save(); };
但两者都错了,我该怎么办?
答案 0 :(得分:4)
function User() {
this.nickname = 'nickname';
}
// ...
User.prototype.add = function() {
this.save();
};
您没有正确定义用户构造函数。
此外,用户的实例(像var myUser = new User();
一样创建)可以通过this.methodNameHere();
答案 1 :(得分:3)
好的。您的代码中存在一些错误。
这里我们使用经典的继承模型。
步骤1.创建构造函数。例如。 function user(){...}
步骤2.通过添加方法扩展您的原型。eg add,save etc
步骤3.创建一个实例来调用methods.eg。MyInstance
function User(){
this.nickname='nickname';
}
User.prototype.dosomething=function(){
//some code
};
User.prototype.save=function(){
this.dosomething();
};
User.prototype.add=function(){
this.dosometing();
this.save();
};
现在我想说我想调用一个方法add.This就是这样做的。
var MyInstance = new User();//create an instance.
MyInstance.add();//call the function.
在你的问题范围之外:同样的事情也可以通过Prototypal Inheritance来完成。
var UserPrototype={
save:function(){..},
add:function(){
this.save();
}
}
var MyInstance = Object.Create(UserPrototype);
MyInstance.add();