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


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 流畅动画实现原理
Sep 08 Javascript
jQuery 操作下拉列表框实现代码
Feb 22 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
Jun 25 Javascript
JavaScript中的原型和继承详解(图文)
Jul 18 Javascript
javascript制作游戏开发碰撞检测的封装代码
Mar 31 Javascript
javascript实现简单查找与替换的方法
Jul 22 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
Nov 01 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
Mar 19 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
Nov 26 Javascript
Vue使用轮询定时发送请求代码
Aug 10 Javascript
Ant-design-vue Table组件customRow属性的使用说明
Oct 28 Javascript
jQuery实现简单弹幕制作
Dec 10 jQuery
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 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
设定php简写功能的方法
2019/11/28 PHP
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
初识javascript 文档碎片
2010/07/13 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
python daemon守护进程实现
2016/08/27 Python
Python 批量合并多个txt文件的实例讲解
2018/05/08 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
2019/08/17 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
python如何实现复制目录到指定目录
2020/02/13 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
python中os.remove()用法及注意事项
2021/01/31 Python
给排水工程师岗位职责
2013/11/21 职场文书
办公室内勤岗位职责范本
2013/12/09 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
实习班主任自我评价
2015/03/11 职场文书
学习党章心得体会2016
2016/01/15 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python