首页 > 代码库 > js中的继承
js中的继承
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>2</title></head><body> <script> function SuperType(){ } SuperType.prototype.arr1 = [1,2,3,4,5]; SuperType.prototype.arr2 = [4,5,6]; function SubType(){ } SubType.prototype = new SuperType(); SubType.prototype.arr2 = [7,8,9] var i0 = new SuperType(); alert(i0.arr1);//1,2,3,4,5 var i1 = new SubType(); i1.arr1.push(7); i1.arr2 = [2,3,4]; alert(i1.arr1);//1,2,3,4,5,7 alert(i1.arr2);//2,3,4 alert(i0.arr1);//1,2,3,4,5,7 此时i0的arr1属性值也对应发生变化 var i2 = new SuperType(); alert(i2.arr1);//1,2,3,4,5,7 alert(i2.arr2);//4,5,6 var i3 = new SubType(); alert(i3.arr1);//1,2,3,4,5,7 alert(i3.arr2);//7,8,9 alert(i3.constructor);//function SuperType(){} /* 子类实例对象寻找属性的步骤:1.自身的实例属性;2.子类构造函数原型对象上的属性;3.父类构造函数原型对象上的属性; 上述步骤也说明了,借用构造函数的方式实现的继承的原理:子类的原型对象是父类的一个实例对象,也就是说子类的原型对象中的[[prototype]]指向的是父类的原型对象。所以说最后的子类实例对象的constructor弹出的是父类构造函数 注意:如果对父类构造函数中的引用类型属性有修改操作(例如上述实例中数组的添加成员等),则也会影响父类的实例对象对应的该属性值; */ </script></body></html>
js中的继承
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。