javascript中的继承
来源:互联网 发布:毕业摄影的数据 编辑:程序博客网 时间:2024/06/05 03:30
咱们伟大的javascript创始人布兰登.艾奇仅用10天时间就创造了一门这么伟大的语言,以至于真正认识了这门语言的时候,有种掉坑里的感觉。
闲话不多扯,虽然这门语言漏洞百出,但它是当今最流行的脚本之一,证明它的魅力还是蛮大的,下面我就说一下在这个语言中继承的主要实现方式。常用的分为两种:组合继承、寄生组合式继承
这是构造函数源代码
function TestA(){this.arr=[0,3,4];}TestA.prototype.getArr=function(){alert(this.arr);}function TestB(){TestA.call(this);}
一、组合继承
var TestB.prototype=new TestA();TestB.prototype.constructor=TestB;var b=new TestB();b.getArr();*这种继承方式有一个明显的弊端:每继承一次都会在当前对象原型中复制不必要的属性和值,但是这是行业里比较多见的继承方式,大概只是因为这种方法比较简单
二、寄生组合式继承
function wrapObj(obj){var O=function(){};O.prototype=obj;return new O();}//通过寄生式返回继承了obj对象的O对象function inheritClass(A,B){var b=wrapObj(B.prototype);b.constructor=A;A.prototype=b;}//通过原型式由A继承了B的原型方法(注意:此处没有继承属性)inheritClass(TestB,TestA);var b=new TestB();b.getArr();
寄生组合式继承弥补了组合继承的弊端,可以省去给不必要的原型属性赋值,是目前比较科学的js对象的继承方式
总结:虽然这两种方式都可以实现继承,但是性能方面会有区别,具体使用哪种还要视项目而定
0 0
- JavaScript中的继承性
- JavaScript中的类继承
- JavaScript中的类继承
- JavaScript中的类继承
- JavaScript中的类继承
- JavaScript中的类继承
- javascript 中的继承
- JavaScript 中的继承
- javascript中的继承
- javascript 中的继承方式
- Javascript中的各种继承
- JavaScript中的继承
- javascript中的继承
- javascript中的继承
- javascript中的继承
- javascript中的继承
- javascript中的继承方法
- javascript 中的继承
- 使用Mockplus的九大理由
- Python基础9--排序
- unity内存和性能优化
- fwrite与fprintf
- oracle 数据类型详解---日期型
- javascript中的继承
- 参数传递(引用,指针,值传递)C++11
- 函数式宏定义与普通函数
- Eclipse中更改Maven默认仓库位置ec
- 关于23种设计模式的有趣见解
- oc_study16 @property和@synthesize
- Iptable指令语法
- Lua学习之二分查找
- 【数据库】SQLite与SQL差异问题汇总