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


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,jquery闭包概念分析
Jun 19 Javascript
jQuery 获取浏览器所在的IP地址的小例子
Nov 08 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
Nov 18 Javascript
js实现自动轮换选项卡
Jan 13 Javascript
javaScript基础详解
Jan 19 Javascript
浅谈React深度编程之受控组件与非受控组件
Dec 26 Javascript
微信小程序实现美团菜单
Jun 06 Javascript
vue-router 源码实现前端路由的两种方式
Jul 02 Javascript
jQuery实现的模仿雨滴下落动画效果
Dec 11 jQuery
vue踩坑记录之数组定义和赋值问题
Mar 20 Javascript
Vue+Spring Boot简单用户登录(附Demo)
Nov 12 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 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
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
PHP程序员必须知道的两种日志实例分析
2020/05/14 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
Js组件的一些写法
2010/09/10 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
2016/04/27 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
2016/11/26 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
Numpy中的mask的使用
2018/07/21 Python
python实现文本界面网络聊天室
2018/12/12 Python
python实现大量图片重命名
2020/03/23 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
scrapy头部修改的方法详解
2020/12/06 Python
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
SQL面试题
2013/04/30 面试题
一些关于MySql加速和优化的面试题
2014/01/30 面试题
毕业求职自荐信格式是什么
2013/11/19 职场文书
安全资料员岗位职责
2013/12/14 职场文书
党在我心中演讲稿
2014/09/02 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
小学教师求职信范文
2015/03/20 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
教师学习心得体会范文
2016/01/21 职场文书
Python中的程序流程控制语句
2022/02/24 Python