获取原型方法

时间:2014-07-22 17:14:13

标签: javascript oop prototype

我有问题。 我的代码:

function Param(){
  this.name = 'sasha'
  this.method = function(){
    return this.name + 'native method'
  }
  this.pro= function(){
 debugger
  // Param.prototype.method() //undefined proto method bad!!
 //  this.__proto__.method() //undefinedproto method 
 Object.getPrototypeOf(this).method()  //undefinedproto method 
  }
}
Param.prototype.method = function(){
    console.log(this.name + 'proto method')
  }
 var param= new Param; 
 param.pro()

使用this.name =' sasha'帮助获取方法原型。 ... 他的工作方式如Object.getPrototypeOf(this).method.call(this);

也许有另一种选择?

1 个答案:

答案 0 :(得分:2)

非常简单的解决方案:this.method()。这只是多态性。

如果你想确保使用原型中的方法,你必须明确地(通过你已经显示的3种方式中的任何一种方式),但是你还需要明确地调用它。使用.call(this)的当前实例。这没什么不对。

如果您想要定义一个与pro完全相同的.prototype.method方法,您可以直接指定它:

this.pro = Param.prototyp.method();

然后param.pro()将在具有名称的实例上调用该原型方法。