JavaScript中的经典继承:重新分配构造函数
我正在尝试使用prototype关键字学习JavaScript中的继承 我在一个网站上看到一段代码,解释了JavaScript中的经典继承。 我将Mozilla Rhino用于命令行javaScript 这是我的密码JavaScript中的经典继承:重新分配构造函数,javascript,Javascript,我正在尝试使用prototype关键字学习JavaScript中的继承 我在一个网站上看到一段代码,解释了JavaScript中的经典继承。 我将Mozilla Rhino用于命令行javaScript 这是我的密码 var fn55 = function(){ var Employee = function(name){ var name = name; this.getName = function(){ retu
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;
输出保持原样
我的问题是,重新分配构造函数的目的是什么
我的问题是,重新分配构造函数的目的是什么
唯一的目的是将构造函数
重置为其原始值
另请参见我认为这是由于一些古老的IE行为,从未重新分配构造函数,也从未咬过我:-)没有必要将构造函数分配给原型对象,但在某些情况下它会有所帮助。然后可以使用
myObject.constructor
在运行时访问对象的构造函数。