浏览 3716 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-26
最后修改:2010-05-13
function classA(sColor){ this.color=sColor; this.sayColor=function(){ alert(this.color); } } 1. 用call方法实现继承 function classC(sColor,sName){ classA.call(this,sColor); this.name=sName; this.sayName=function(){ alert(this.name); } } var obj1=new classC("red","jack"); obj1.sayColor(); obj1.sayName(); 2.用apply方法实现继承, 这种方法的本质和call方法是一致的,不同的是APPLY的第个参数是数组(包含了要传递的所有参数) function classD(sColor,sName){ classA.apply(this,new Array(sColor)); this.name=sName; this.sayName=function(){ alert(this.name); } } var obj2=new classD("blue","sherry"); obj2.sayColor(); obj2.sayName(); 3. 原型方法, 请参考我的前篇文章 JAVASCRIPT定义对象的四种方式 4. 构造函数,原型混合方法 function classA(sName){ this.name=sName; } classA.prototype.sayName=function(){ alert(this.name); } function classB(sName,sHeight){ classA.call(this,sName) this.height=sHeight; } classB.prototype=new classA(); classB.prototype.sayHeight=function(){ alert(this.height); } var obj3=new classA("jack"); obj3.sayName(); var obj4=new classB("shrry",27); obj4.sayName(); obj4.sayHeight(); 5. 使用类似于Prototype extend 方法 function extend(childclass,superclass){ var func=function(){}; func.prototype=superclass.prototype; childclass.prototype=new func(); childclass.prototype.constructor=childclass; } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |