组合式继承是比较经典的继承,但是也有比较严重的缺点就是连两次调用了父类的构造函数。

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
function SuperType(name){
this.name=name;
this.colors=["red","blue","green"];
}
SuperType.prototype.sayName=function(){
console.log(this.name);
}
function SubType(name,age){
SuperType.call(this,name);//此时会执行SuperType函数,其中的this就会指向SubType,第二次调用父类
this.age=age;
}
SubType.prototype=new SuperType();//第一次调用父类
SubType.prototype.constructor=SubType;
SubType.prototype.sayAge=function(){
console.log(this.age);
}
var instance1=new SubType("zxf",24);
console.log(SubType.prototype);
instance1.colors.push("black");
console.log(instance1.colors);//["red","blue","green","black"]
instance1.sayName();//"zxf"
instance1.sayAge();//24
delete instance1.colors;
var instance2=new SubType("jay",36);
console.log(instance2.colors);//["red","blue","green"]
instance2.sayName();//"jay"
instance2.sayAge();//36
/*
* 此方法有弊端,就是 SubType.prototype=new SuperType();这句话会导致子类的原型指向父类,并且会有父类的属性name,colors,
* 继承这些属性其实在子类中用SuperType.call()已经实现了,这句话会让子类的实例拥有colors,name属性,并且会覆盖子类原型上的name,colors属性,就是上面一行提到的
* 所以这是个弊端,可以用寄生组合式继承来避免
* */
</script>
</body>
</html>

最新文章

  1. Leetcode 60. Permutation Sequence
  2. kali/centos 更新 java
  3. actionbar部分设置:colorPrimary colorPrimaryDark colorAccent 下部阴影
  4. 致网友Wonderfei的一封信(怎样选择自己主动化框架的几点拙见)
  5. apache 不执行PHP,显示代码
  6. 基于 HTML5 Canvas 的 3D 模型列表贴图
  7. 打通MySQL的操作权限
  8. js数组string对象api常用方法
  9. CTBS问题百科
  10. SuperMap iObject入门开发系列七管线横断面分析
  11. ubuntu 18.04 配置远程ssh/远程ftp/远程vnc登陆
  12. 【BZOJ3730】震波(动态点分治)[复习]
  13. 转载:Linux下解压zip乱码问题的解决(unzip)
  14. 获取Ueditor里面的图片列表,地址绝对化
  15. python 常用的模块
  16. selenium批量翻译
  17. 记录一则完整的SPA(10g-&gt;11g)测试过程
  18. c# async/await异步编程死锁的问题
  19. 缩减apk大小
  20. mongodb 按照时间聚类 java

热门文章

  1. OpenVINO在linux下安装
  2. WEB网站的favicon.ico的设置
  3. drf偏移分页组件-游标分页-自定义过滤器-过滤器插件django-filter
  4. ZJNU 2226 - B.T.B.F
  5. tensorflow实现卷积层的几种方式
  6. Ubuntu目錄
  7. 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第八天】(solr服务器搭建、搜索功能实现)
  8. C/C++ memcpy函数的用法
  9. The website is API(4)
  10. Matlab高级教程_第二篇:Matlab2016a和VS2013混合