(function() {
var Emp = function(_name, _salary) {
var name = _name;
var salary = _salary
return {
name: name,
salary: salary
};
}
Emp.prototype.work = function(){
console.log('this is work',this);
}
var Car = function(_name, _model) {
this.name = _name;
this.model = _model;
}
Car.prototype.drive = function() {
console.log('this is drive ', this);
}
var car = new Car('bmw', '2015');
car.drive(); // Works
var emp = new Emp('peter', '1234');
emp.work(); // TypeError
})();
我能够理解
Car
类,但是为什么原型(prototype)在 Emp
类上不起作用,请帮助我理解这个基本的 JavaScript 概念。 最佳答案
在关于 new
运算符的 MDN page 中,解释了该运算符的基本作用:
作为 Emp
构造函数的最后一步是
return {
name: name,
salary: salary
};
您“覆盖”了返回在步骤 1 中创建的对象的默认行为,因此您不会从函数原型(prototype)继承
关于javascript - 两个 JavaScript 类之间的区别以及原型(prototype)在 Emp 类上不起作用的原因,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39678942/