为什么在函数中包含.prototype?

时间:2013-11-26 07:44:07

标签: javascript prototype

我正在阅读John Resig的幻灯片http://ejohn.org/apps/learn/#78 我不清楚为什么我需要在.prototype

行中加入Me.prototype = new Person();
function Person(){}
Person.prototype.getName = function(){
  return this.name;
};

function Me(){
  this.name = "John Resig";
}
Me.prototype = new Person();

var me = new Me();
assert( me.getName(), "A name was set." );

1 个答案:

答案 0 :(得分:0)

这样想,如果每个人都有一个名字,就可以更容易地将getName函数分配给它的原型。

在这种情况下,你有一个,它有一个原型函数来获取一个名字,下面几行你有一个 Me 函数来指定一个名字默认。由于我们想要合并getName函数,我们使用已经内置了该函数对象的Person。当您构建Me()并分配给me时,您可以调用getName()并使用该名称返回名称,默认情况下为“John Resig”

没有原型就可以实现同样的目标,比如

function Me(){
  this.name = "John Resig";
  this.getName = function () {
    return this.name;
  }
}

var me = new Me();

...但是通过使用原型,它可以更快地创建对象,您也可以refer to this answer