看看下面的代码:
function person() {
this.fname = 'baby';
this.lname = 'boy';
this.walk = function () {
return 'i can walk';
}
}
person.prototype.walk=function(){ return 'all can walk';}
var obj=new person();
obj.walk();
现在我想在我的代码中使用这两个功能,但是当我使用obj.walk()调用walk时,它应该从原型调用walk函数,结果返回我'都可以走了'
答案 0 :(得分:1)
您可以delete obj.walk
仅删除该特定对象的属性,并强制它使用继承的方法。
function person() {
this.fname = 'baby';
this.lname = 'boy';
this.walk = function () {
return 'i can walk';
}
}
person.prototype.walk=function(){ return 'all can walk';}
var obj=new person();
delete obj.walk;
console.log(obj.walk());
答案 1 :(得分:1)
这是一种方法,但我认为它需要ES5。
function person() {
this.fname = 'baby';
this.lname = 'boy';
this.walk = function () {
return 'i can walk';
}
}
person.prototype.walk=function(){ return 'all can walk';}
var obj=new person();
obj.walk();
//to call the prototype's function
Object.getPrototypeOf(obj).walk.call(obj);