WEB开发网
开发学院网页设计JavaScript javascript中的继承 阅读

javascript中的继承

 2009-09-10 00:00:00 来源:WEB开发网   
核心提示: 这只是一个非常非常简单的例子,不过这里我们可以看到在javascript中的继承,javascript中的继承(2),就是通过构造函数的prototype来进行构造的, 下面又有一个问题,就是给整个继承体系加入了一个specialty属性, 现在假设我们有下面的代码(这里已经给各个构造器加入了一

这只是一个非常非常简单的例子,不过这里我们可以看到在javascript中的继承,就是通过构造函数的prototype来进行构造的。

下面又有一个问题,那就是想给一个对象在运行时加入属性怎么办,或许你想到该这么做:

mark.bonus = 3000

可是这样做的话只是mark 对象拥有了一个bonus属性,而不是WorkerBee 拥有这个属性。

如果你想要加一个属性被这个构造函数的所有对象所共享,那么你就必须这么做:

Employee.prototype.specialty = "none"; 

这里的话,就是给整个继承体系加入了一个specialty属性。

现在假设我们有下面的代码(这里已经给各个构造器加入了一些参数:

jane = new Engineer("belau"); 

然后jane的属性的值如下:

引用

jane.name == "";
jane.dept == "general";
jane.projects == [];
jane.machine == "belau

可以发现这时我们无法指定一个继承属性的值,不过没关系,我们可以这样修改我们的程序:

function Employee (name, dept) { 
this.name = name || ""; 
this.dept = dept || "general"; 
} 
 
function Engineer (name, projs, mach) { 
this.base = WorkerBee; 
this.base(name, "engineering", projs); 
this.machine = mach || ""; 
} 
 
function WorkerBee (name,dept,projs) { 
this.base=Employee; 
this.base(name,dept); 
this.projects = projs || []; 
} 
WorkerBee.prototype = new Employee; 

Tags:javascript 继承

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接