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


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 相关文章推荐
jquery插件制作 提示框插件实现代码
Aug 17 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
Jun 04 Javascript
让alert不出现弹窗的两种方法
May 18 Javascript
Javascript中arguments和arguments.callee的区别浅析
Apr 24 Javascript
如何使用jquery easyui创建标签组件
Nov 18 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
Nov 25 Javascript
js实现瀑布流的三种方式比较
Jun 28 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
Jun 24 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
May 27 Javascript
微信小程序实现人脸检测功能
May 25 Javascript
JavaScript常用事件介绍
Jan 21 Javascript
微信小程序实现录音时的麦克风动画效果实例
May 18 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
与数据库连接
2006/10/09 PHP
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
javascript IFrame 强制刷新代码
2009/07/23 Javascript
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
JavaScript将字符串转换成字符编码列表的方法
2015/03/19 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
vue使用Axios做ajax请求详解
2017/06/07 Javascript
解决iview打包时UglifyJs报错的问题
2018/03/07 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
Python编写电话薄实现增删改查功能
2016/05/07 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
python实现俄罗斯方块游戏
2020/03/25 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
Python3实现二叉树的最大深度
2019/09/30 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
使用python从三个角度解决josephus问题的方法
2020/03/27 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
物业保安主管岗位职责
2013/12/25 职场文书
年会主持词结束语
2014/03/27 职场文书
市场总经理岗位职责
2014/04/11 职场文书
婚前协议书
2014/04/15 职场文书
七夕情人节促销方案
2014/06/07 职场文书
教师党员自我剖析材料
2014/09/29 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL
springboot读取nacos配置文件
2022/05/20 Java/Android