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


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的event详解。
Sep 06 Javascript
浅谈关于JavaScript的语言特性分析
Apr 11 Javascript
当鼠标移动时出现特效的JQuery代码
Nov 08 Javascript
JavaScript的类型、值和变量小结
Jul 09 Javascript
JavaScript Math 对象常用方法总结
Apr 28 Javascript
javascript阻止事件冒泡和浏览器的默认行为
Jan 21 Javascript
jquery.flot.js简单绘制折线图用法示例
Mar 13 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
Mar 27 Javascript
js使用原型对象(prototype)需要注意的地方
Aug 28 Javascript
Angular2进阶之如何避免Dom误区
Apr 02 Javascript
JS中promise化微信小程序api
Apr 12 Javascript
javascript sort()对数组中的元素进行排序详解
Oct 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
星际玩家的三大定律
2020/03/04 星际争霸
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
php返回json数据函数实例
2014/10/09 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
JS的get和set使用示例
2014/02/20 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
详解js 创建对象的几种方法
2019/03/08 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python数据库的连接实现方法与注意事项
2016/02/27 Python
python 使用 requests 模块发送http请求 的方法
2018/12/09 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
keras K.function获取某层的输出操作
2020/06/29 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
HTML5安全介绍之内容安全策略(CSP)简介
2012/07/10 HTML / CSS
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
网络安全方面的面试题
2016/01/07 面试题
美术指导助理求职信
2014/04/20 职场文书
关于建议书的格式范文
2014/05/20 职场文书
竞选学习委员演讲稿
2014/09/01 职场文书
年底个人总结范文
2015/03/10 职场文书
销售经理助理岗位职责
2015/04/13 职场文书