我正在阅读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." );
答案 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。