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


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系列(3) 全面解析Module模式
Jan 15 Javascript
jQuery prev ~ siblings选择器使用介绍
Aug 09 Javascript
javascript动态修改Li节点值的方法
Jan 20 Javascript
JS去除iframe滚动条的方法
Apr 01 Javascript
JavaScript基于setTimeout实现计数的方法
May 08 Javascript
JavaScript中reduce()方法的使用详解
Jun 09 Javascript
AngularJS 中的指令实践开发指南(一)
Mar 20 Javascript
基于jquery实现二级联动效果
Mar 30 jQuery
vue.js组件vue-waterfall-easy实现瀑布流效果
Aug 22 Javascript
Vue实现PopupWindow组件详解
Apr 28 Javascript
vue 权限认证token的实现方法
Jul 17 Javascript
layui前端框架之table表数据的刷新方法
Aug 17 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 日漫
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
php下获取客户端ip地址的函数
2010/03/15 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
PHP防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
javascript Demo模态窗口
2009/12/06 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
2018/07/07 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
简单介绍Python中的decode()方法的使用
2015/05/18 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
Python实现的端口扫描功能示例
2018/04/08 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
中文专业毕业生自荐书范文
2014/01/04 职场文书
2014的自我评价
2014/01/13 职场文书
学校安全检查制度
2014/01/27 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
安全生产管理合理化建议书
2014/03/12 职场文书
《卖木雕的少年》教学反思
2014/04/11 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
疾病防治方案
2014/05/31 职场文书
篮球比赛策划方案
2014/06/05 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
销售合作意向书范本
2015/05/08 职场文书
一篇文章弄懂MySQL查询语句的执行过程
2021/05/07 MySQL
详解Python类和对象内容
2021/06/22 Python
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python