我正在尝试使用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;
输出保持不变。
所以我的问题是,重新分配构造函数
的目的是什么答案 0 :(得分:0)
所以我的问题是,重新分配构造函数
的目的是什么
唯一目的是将constructor
重置为原始值。
另见What it the significance of the Javascript constructor property?