javascript 类继承(补充)

来源:互联网 发布:常州一名网络女主播 编辑:程序博客网 时间:2024/06/01 19:13

其实有一种原型链继承,但是有弊端,因为存在引用链问题:
function A(){this.a = [1,2]};
function B(){};
B.prototype = new B();
var b1 = new B;
b1.a.push(3); alert(b1.a);//1,2,3
var b2 = new B;
alert(b2.a);//1,2,3
也就是说,这种引用型的类型,所有的对象引用同一个原型对象~所以就出现这种问题。


但是上面(上一篇javascript ..类继承..)介绍的是基于借用构造函数和原型链的综合应用,基本不会出现这种引用问题,因为
1、借用构造函数的时候,相当于自己的构造函数中把基类的属性重新定义了一遍,是新的。
2、借用后,删除了基类的对应值,此时只保留一份。(其实这步操作我认为不用,因为属性中存在,就不会去检索原型链了)

原创粉丝点击