使用原型中定义的函数来抑制main函数调用

时间:2015-04-29 14:27:50

标签: javascript oop

看看下面的代码:

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函数,结果返回我'都可以走了'

2 个答案:

答案 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);