基于构造函数的五种继承方法小结


Posted in Javascript onJuly 27, 2017

1.使用call或apply绑定构造函数

animal.apply(this.arguments)

2.使用prototype属性

Cat.prototype = new Animal();


Cat.prototype.constructor = Cat;


var cat1 = new Cat("大毛","黄色");


alert(cat1.species); // 动物

3.直接集成prototype属性

function Animal(){ }


Animal.prototype.species = "动物";

 


Cat.prototype = Animal.prototype;


Cat.prototype.constructor = Cat;


var cat1 = new Cat("大毛","黄色");


alert(cat1.species); // 动物

4.利用空对象作为中介

var F = function(){};


F.prototype = Animal.prototype;


Cat.prototype = new F();

 
Cat.prototype.constructor = Cat;


将上面的方法封装成一个函数,便于使用:



function extend(Child, Parent) {




var F = function(){};




F.prototype = Parent.prototype;




Child.prototype = new F();




Child.prototype.constructor = Child;




Child.uber = Parent.prototype;



}

5.拷贝继承

function extend2(Child, Parent) {


var p = Parent.prototype;


  var c = Child.prototype;



for (var i in p) {




c[i] = p[i];




}



c.uber = p;


}

这个函数的作用,就是将父对象的prototype对象中的属性,一一拷贝给Child对象的prototype对象。

以上这篇基于构造函数的五种继承方法小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
纯JavaScript实现的完美渐变弹出层效果代码
Apr 02 Javascript
nodeType属性返回被选节点的节点类型介绍
Nov 22 Javascript
javascript工厂方式定义对象
Dec 26 Javascript
js判断文本框剩余可输入字数的方法
Feb 04 Javascript
Node.js的Express框架使用上手指南
Mar 12 Javascript
浅谈jQuery添加的HTML,JS失效的问题
Oct 05 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
Jan 04 Javascript
JS实现复选框的全选和批量删除功能
Apr 05 Javascript
Vue2.0设置全局样式(less/sass和css)
Nov 18 Javascript
vue服务端渲染缓存应用详解
Sep 12 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
Sep 26 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
Sep 17 Javascript
vue中各组件之间传递数据的方法示例
Jul 27 #Javascript
微信小程序 页面跳转传值实现代码
Jul 27 #Javascript
JS实现按钮控制计时开始和停止功能
Jul 27 #Javascript
关于JavaScript中forEach和each用法浅析
Jul 27 #Javascript
Easyui使用Dialog行内按钮布局的实例
Jul 27 #Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
Jul 27 #Javascript
js实现日期显示的一些操作(实例讲解)
Jul 27 #Javascript
You might like
PHP无限分类的类
2007/01/02 PHP
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
解决jquery版本冲突的有效方法
2014/09/02 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
Jquery easyui开启行编辑模式增删改操作
2016/01/14 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
2016/05/12 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
简单学习5种处理Vue.js异常的方法
2019/06/17 Javascript
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
Python验证码识别的方法
2015/07/10 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
Python如何读写CSV文件
2020/08/13 Python
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
学校采购员岗位职责
2014/01/02 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
医院领导班子整改方案
2014/10/01 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
单位更名证明
2015/06/18 职场文书