使用prototype原型对象创建方法的时候,以对象的形式创建方法的时候会将构造函数覆盖掉,所以需要手动地利用constructor指回原来的构造函数:
function Star(uname,age){
this.uname=uname;
this.age=age;
}
Star.prototype.sing=function(){
console.log("我会唱歌!");
}
Star.prototype.dancing=function(){
console.log("我会跳舞!");
}
使用以上方法不需要手动利用constructor指回原来的构造函数。
function Star(uname,age){
this.uname=uname;
this.age=age;
}
Star.prototype= {
constructor:Star,
sing:function(){
console.log("我会唱歌!");
},
dancing:function(){
console.log("我会跳舞!");
}
}
以对象的形式创建方法的时候,不是使用".“操作,而是使用赋值”=",会将构造函数覆盖掉,所以需要手动地利用constructor指回原来的构造函数。通过以下三角关系可以进一步理解: