javascript - Object.create() 无法访问函数内的变量

标签 javascript

我正在使用下面的代码。

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/

相关文章:

javascript - Comet:XMLHttpRequest.responseText 无限增长

javascript - 增加节点大小 vis.js

javascript - 循环打印以逗号分隔的迭代,末尾没有逗号

javascript - 如何判断某个位置是否在特定字符之间?

javascript - 使用比较函数排序

javascript - 将@property设为私有(private)

javascript - 在 Drupal 的 CKEditor 4 中添加链接属性

javascript - 利用内置的 XPath 引擎来查询 javaScript 对象

javascript - 几秒钟后 Jquery animation() 响应非常缓慢

javascript - 确定在 html5 canvas javascript 中点击了屏幕上的哪个对象?