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


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 相关文章推荐
代码精简的可以实现元素圆角的js函数
Jul 21 Javascript
jQuery实现跨域iframe接口方法调用
Mar 14 Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 Javascript
jquery插件jSignature实现手动签名
May 04 Javascript
jQuery弹出div层过2秒自动消失
Nov 29 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
Feb 27 Javascript
关于Vue实现组件信息的缓存问题
Aug 23 Javascript
vue 实现复制内容到粘贴板clipboard的方法
Mar 17 Javascript
JSON.stringify()方法讲解
Jan 31 Javascript
微信小程序开发实现的IP地址查询功能示例
Mar 28 Javascript
vue实现在v-html的html字符串中绑定事件
Oct 28 Javascript
微信小程序聊天功能的示例代码
Jan 13 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
摩卡咖啡
2021/03/03 咖啡文化
一个用php实现的获取URL信息的类
2007/01/02 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
PHP5.5迭代生成器用法实例详解
2016/03/16 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
2016/11/22 Javascript
zTree实现节点修改的实时刷新功能
2017/03/20 Javascript
js实现点击按钮复制文本功能
2020/07/20 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
微信头像地址失效踩坑记附带解决方案
2019/09/23 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
Flask之flask-script模块使用
2018/07/26 Python
Pytorch加载部分预训练模型的参数实例
2019/08/18 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
收费员岗位职责
2015/02/14 职场文书
食品质检员岗位职责
2015/04/08 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
西柏坡观后感
2015/06/08 职场文书
岁月神偷观后感
2015/06/11 职场文书
导游词之张家界
2019/10/31 职场文书
Golang全局变量加锁的问题解决
2021/05/08 Golang
python四种出行路线规划的实现
2021/06/23 Python