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


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 相关文章推荐
你的编程语言可以这样做吗?
Sep 07 Javascript
神奇的代码 通杀各种网站-可随意修改复制页面内容
Jul 17 Javascript
清空上传控件input file的值
Jul 03 Javascript
JavaScript实现网页上的浮动广告的简单方法
Jun 14 Javascript
JQuery操作单选按钮以及复选按钮示例
Sep 23 Javascript
extjs每个组件要设置唯一的ID否则会出错
Jun 15 Javascript
深入理解Angular4中的依赖注入
Jun 07 Javascript
JS实现点击Radio动态更新table数据
Jul 18 Javascript
React-Native 组件之 Modal的使用详解
Aug 08 Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
Jan 12 Javascript
jQuery实现获取多选框的值示例
Feb 07 jQuery
js实现的订阅发布者模式简单示例
Mar 14 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 Ajax实现页面无刷新发表评论
2007/01/02 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
2015/06/22 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
微信小程序实现签到功能
2018/10/31 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
基于three.js实现的3D粒子动效实例代码
2019/04/09 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
KMP算法精解及其Python版的代码示例
2016/06/01 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
浅析PEP572: 海象运算符
2019/10/15 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
阿里云:Aliyun.com
2017/02/15 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
EJB的基本架构
2016/09/22 面试题
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
土地转让协议书
2014/09/27 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
辩护词格式
2015/05/22 职场文书
PHP基本语法
2021/03/31 PHP
mysql配置SSL证书登录的实现
2021/09/04 MySQL