我正在使用下面的代码。
var emp = function employee(name, sal) {
this.empname = name;
this.sal = sal;
}
emp.prototype.getName = function() {
return this.empname
};
var man = new emp("manish", 100);
console.log(man.getName()); //prints manish
var man1 = Object.create(emp);
man1.empname = "manish1";
console.log(man1.prototype.getName()); //prints undefined.
可以帮助我理解为什么 object create 打印 undefined 而不是 manish1。
最佳答案
new X()
使用构造函数 X
和原型(prototype) X.prototype
创建一个新对象。 Object.create(X)
使用原型(prototype) X
创建一个新对象(因此构造函数 X.constructor
)。
所以你需要用你想要的原型(prototype)来调用它:
var man2 = Object.create(emp.prototype);
man2.empname = "manish2";
console.log (man2.getName()); // prints manish2
关于javascript - Object.create() 无法访问函数内的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40151033/