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


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 异步调用框架 (Part 5 - 链式实现)
Aug 04 Javascript
ExtJS4中使用mixins实现多继承示例
Dec 03 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
Aug 22 Javascript
使用Sticker.js实现贴纸效果
Jan 28 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
Oct 15 Javascript
浅谈angular.copy() 深拷贝
Sep 14 Javascript
JS实现碰撞检测的方法分析
Jan 19 Javascript
JavaScript 日期时间选择器一些小结
Apr 02 Javascript
Webpack中雪碧图插件使用详解
May 25 Javascript
详解webpack 最简打包结果分析
Feb 20 Javascript
用Fundebug插件记录网络请求异常的方法
Feb 21 Javascript
Vue和Flask通信的实现
May 19 Vue.js
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
php5.3 废弃函数小结
2010/05/16 PHP
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
php模拟js函数unescape的函数代码
2012/10/20 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
php实现文件管理与基础功能操作
2017/03/21 PHP
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
JavaScript学习笔记之JS函数
2015/01/22 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
Vue.js结合bootstrap实现分页控件
2017/03/10 Javascript
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
2017/11/09 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
JavaScript中的"=、==、==="区别讲解
2019/01/22 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
Christys’ Hats官网:英国帽子制造商
2018/11/28 全球购物
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
P/Invoke是什么
2015/07/31 面试题
用C#语言写出在本地创建一个UDP接收端口的具体过程
2016/02/22 面试题
销售个人求职信范文
2014/04/28 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
数学教师个人总结
2015/02/06 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书