关于javascript原型的问题

时间:2017-07-14 09:07:59

标签: javascript constructor prototype prototype-chain

下面的

是first_code。

function Person(name){
    this.name = name;  
};
var p1 = new Person('go');
Person.prototype.getname = function(){
    return this.name
}

p1.getname(); // go ( p1 inherits the getname property ) 

然而,这里是second_code,

function Person(name){
    this.name = name;  
}
var p1 = new Person('go');
Person.prototype.getname = function(){
    return this.name
}

p1.getname(); // go ( p1 inherits the getname property ) 

function Person2(){};
var p2 = new Person2();
Person2.prototype = p1;

p2.getname(); // error (p2 does not inherit the getname property)

为什么p2.getname()不起作用?

我已经检查过,如果我像下面那样切换代码,那就可以了。

function Person2(){};
Person2.prototype = p1;
var p2 = new Person2();

p2.getname(); // go

但是在first_code的情况下, 关于代码行序列没有问题,

但为什么对second_code有错误的问题?

需要一些帮助,

0 个答案:

没有答案