当前位置: 首页 > news >正文

js继承之一(借用构造函数)

现在,已经知道了原型对象,原型链的实现,原型链式继承的缺陷;那么如何避免这个缺陷?

在子类中借用父类的构造函数

//定义一个CarModel类
function CarModel(c){
      this.color=c||"白色";
      this.arr=[1,2,3];
      this.getColor=function(){
	        console.log('我的颜色是'+this.color);
      }
}
//car类有自己的属性,比如品牌
function Car(brand){
	 CarModel.call(this);//借用父类的构造函数
	 this.brand=brand;
     this.getBrand=function(){
	      console.log('我的品牌是'+this.brand);
      }
}

var car1=new Car("丰田");

console.log(car1);

 

达到的效果相当于,子类拷贝了一份父类的方法和属性,加上自己的方法和属性;

优点:

  1. 解决了原型链式继承中,修改父类引用属性的问题
  2. 能够向父类构造函数传递参数了

缺点:

  1. 实例并不是父类的实例,只是子类的实例!
  2. 无法实现函数复用,每个子类都有父类实例函数的副本

 

转载于:https://www.cnblogs.com/llauser/p/6718587.html

相关文章:

  • 【转】使用SecureCRT连接ubuntu
  • 第八周总结
  • 函数初步接触
  • 2017.4.17 定制Eclipse的Content assist(代码补全),比如空格键 =键不上屏
  • Director.js路由
  • Java实现八进制正整数转化为十进制数
  • vim 设置默认显示行号
  • iOS APNs远程推送流程精简版
  • python面向对象01
  • css3边框背景写法及简写。待续
  • 逻辑分析题汇总(一)
  • python/文件操作
  • pyhton随笔02
  • C# 中的EventHandler
  • 二叉搜索树的插入
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • bootstrap创建登录注册页面
  • C++入门教程(10):for 语句
  • java8 Stream Pipelines 浅析
  • JavaScript实现分页效果
  • PAT A1092
  • scala基础语法(二)
  • SpiderData 2019年2月25日 DApp数据排行榜
  • SwizzleMethod 黑魔法
  • Vue2.0 实现互斥
  • Vultr 教程目录
  • 浮动相关
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 基于web的全景—— Pannellum小试
  • 聊一聊前端的监控
  • 时间复杂度与空间复杂度分析
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 线性表及其算法(java实现)
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 移动端高清、多屏适配方案
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #pragam once 和 #ifndef 预编译头
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)Sql Server 保留几位小数的两种做法
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .Family_物联网
  • .Net - 类的介绍