function Abc(){
this.a ="naveen"
}
Abc.prototype.getName =function () {
return this.a;
}
function Pqr() {
this.b ="bn"
}
Pqr.prototype = Object.create(Abc.prototype);
Pqr.prototype.constructor = Abc;
var a = new Pqr();
console.log(a.a);
console.log(a.getName());
console.log(JSON.stringify(a));
我正在尝试使用object.create
将属性从父级继承到子级,但这表明原因未定?
输出原因?
undefined
undefined
{"b":"bn"}
答案 0 :(得分:0)
您的代码实际上是将功能Abc
分配给constructor
的新功能Pqr
。此constructor
函数不是Pqr
的实际构造函数,这就是从未调用this.a = "naveen"
的原因(因为它不是Pqr的构造函数,所以没有被隐式调用)。为此,您需要在访问对象constructor
的值之前调用a.constructor();
之类的a
函数。
function Abc(){
this.a ="naveen"
}
Abc.prototype.getName =function () {
return this.a;
}
function Pqr() {
this.b ="bn"
}
Pqr.prototype = Object.create(Abc.prototype);
Pqr.prototype.constructor = Abc;
var a = new Pqr();
a.constructor();
console.log(a);
console.log(a.getName());
console.log(JSON.stringify(a));