javascript中的继承
2009-09-10 00:00:00 来源:WEB开发网这只是一个非常非常简单的例子,不过这里我们可以看到在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 继承
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接