Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在原型中定义时不能调用函数?_Javascript_Jquery_Inheritance - Fatal编程技术网

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
的原型,然后覆盖该原型,因此它无法工作。