JavaScript中的经典继承:重新分配构造函数
Classical Inheritance in JavaScript : Reassigning the constructor
我正在尝试使用prototype关键字学习JavaScript中的继承。
我在一个网站上看到了一个代码,这个代码解释了我在JavaScript中的经典继承。我使用Mozilla Rhino命令行javaScript
这是我的代码
var fn55 = function(){
var Employee = function(name){
var name = name;
this.getName = function(){
return name;
};
this.setName = function(empName){
name = empName;
};
};
var ContractEmp = function(name,sal){
var salary = sal;
this.getSalary = function(){
return salary;
}
//calling super constructor
Employee.apply(this,[name]);
};
ContractEmp.prototype = new Employee();
ContractEmp.prototype.constructor = ContractEmp;
var emp1 = new ContractEmp("Jack",3000);
var emp2 = new ContractEmp("John",4000);
print(emp1.getName());
print(emp2.getName());
print(emp1.getName());
Employee.prototype.getInfo = function(){
return "Emp Name '""+this.getName()+"'" Salary "+this.getSalary();
}
print(emp1.getInfo());
};
fn55();
输出为
Jack
John
Jack
Emp Name "Jack" Salary 3000
现在如果我在代码中注释一行
//ContractEmp.prototype.constructor = ContractEmp;
输出保持原样。
我的问题是,重新赋值构造函数的目的是什么我的问题是,重新赋值构造函数的目的是什么?
唯一的目的是将constructor
重置为初始值。
参见Javascript构造函数属性的意义是什么?
相关文章:
- ES6构造函数返回基类的实例
- 使用Google Visualization动态调用构造函数
- javascript中对象构造函数中的var属性与this.properties
- 理解typescript中的构造函数接口
- 为什么构造函数不是构造函数
- 如果在构造函数中有“返回”,则在 JavaScript 中的新运算符中做了什么
- 拦截对构造函数的调用
- 使用闭包共享构造函数参数
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 动态分配类“;不是构造函数”;
- NodeJS-如何为模块分配构造函数.导出自执行函数
- 可以't在分配原型后访问构造函数
- 在构造函数中初始化的JavaScriptPrototype属性不会重写已分配的新原型
- ES6类:我怎么得到这个?属性在基类构造函数中分配给派生类原型
- JavaScript -将名称空间分配给局部变量以用于构造函数,但不确定发生了什么
- 我们可以在对象构造函数中分配一个公共方法吗?(javascript)
- 如果重新分配了原型和构造函数,如何获取实例名称
- 您可以将一个构造函数的原型分配给另一个构造函数吗?
- 如何创建带有未分配属性的Javascript构造函数/原型
- JavaScript中的经典继承:重新分配构造函数