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


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的一种模块模式
Mar 22 Javascript
JavaScript 的方法重载效果
Aug 07 Javascript
基于jquery的复制网页内容到WORD的实现代码
Feb 16 Javascript
javascript中取前n天日期的两种方法分享
Jan 26 Javascript
js判断浏览器是否支持html5
Aug 17 Javascript
javascript实现base64 md5 sha1 密码加密
Sep 09 Javascript
基于jquery实现多级菜单效果
Jul 25 jQuery
Vue Socket.io源码解读
Feb 07 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
Mar 15 Javascript
vue单页应用在页面刷新时保留状态数据的方法
Sep 21 Javascript
JS数组及对象遍历方法代码汇总
Jun 16 Javascript
vue基于Teleport实现Modal组件
May 31 Vue.js
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 iconv函数的使用详解
2013/06/09 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
Node.js 异步编程之 Callback介绍(一)
2015/03/30 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
2016/12/19 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
用 js 的 selection range 操作选择区域内容和图片
2017/04/18 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
详解React中setState回调函数
2018/06/14 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
记一次vue去除#问题处理经过小结
2019/01/24 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
在python中安装basemap的教程
2018/09/20 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
学生自我鉴定模板
2013/12/30 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
入党积极分子考察意见
2015/06/02 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书
编写python程序的90条建议
2021/04/14 Python
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL