Javascript 为什么在原型中定义时不能调用函数?
我正在做一个继承的例子。我想访问Javascript 为什么在原型中定义时不能调用函数?,javascript,jquery,inheritance,Javascript,Jquery,Inheritance,我正在做一个继承的例子。我想访问abc和pqr的所有属性,因此我使用了Object.create。但是,调用getr()函数时,我无法获取r的值。我做错了什么 函数abc(){ 这个a=3; } abc.prototype.getA=函数(){ 还这个 } 函数pqr(){ 打电话(这个); 这个r=3; } pqr.prototype.getr=函数(){ 把这个还给我 } pqr.prototype=Object.create(abc.prototype); var n=新的pqr();
abc
和pqr
的所有属性,因此我使用了Object.create
。但是,调用getr()
函数时,我无法获取r
的值。我做错了什么
函数abc(){
这个a=3;
}
abc.prototype.getA=函数(){
还这个
}
函数pqr(){
打电话(这个);
这个r=3;
}
pqr.prototype.getr=函数(){
把这个还给我
}
pqr.prototype=Object.create(abc.prototype);
var n=新的pqr();
console.log(n.getr())
问题是因为在创建getr()
后覆盖了pqr.prototype
。交换这些语句的顺序:
函数abc(){
这个a=3;
}
abc.prototype.getA=函数(){
归还这个;
}
函数pqr(){
打电话(这个);
这个r=3;
}
pqr.prototype=Object.create(abc.prototype);
pqr.prototype.getr=函数(){
归还这个.r;
}
var n=新的pqr();
console.log(n.getr())
将getr()
附加到pqr
的原型,然后覆盖该原型,因此它无法工作。