javascript关于继承解析


Posted in Javascript onMay 10, 2016

上一篇已介绍了组合继承,现在讲讲剩余的几种继承。

原型式继承

调用一个函数,接收这个函数返回来的对象,这个对象的原型就是传入函数的参数对象。

如:

function  personObject(o){
    function F(){}
    F.prototype = o;
    return new F();
}
var person = {
   name:"Nicholas",
   friends:["Shelby","Court","Van"]
}

var person_one = personObject(person);

从上面的代码中,我们知道person是person_one的原型。ES5中添加了一个方法规范化原型式继承,这个方法是Object.create(),这个方法有两个参数,第一个是作为新对象原型的对象,像上面的person,第二个是为新对象定义额外属性的对象。第二个参数可选。

如:

var person_one = Object.create(person, {
        name: {
            value:"Jon"
      }
});

当你只想让一个对象与另一个对象保持类似时,可以使用原型式继承。

寄生式继承   

在一个函数里实现一次原型式继承,然后为接收到的这个对象添加自己的属性与方法。

如:

function createAnother(o){
   var person_one = personObject(o);
   person_one.sayHi = function(){
       alert(" hi ");
   }
   return person_one;
}

寄生组合式继承

组合继承也有其缺点,它实现了两次属性继承,而寄生组合式继承就避免了这个问题。实例通过构造函数继承了属性,而原型的方法则是通过寄生式继承的方式来继承。

如:

function inherit(subType, superType){
   var prototype = Object(superType.prototype);
   prototype.constructor = subType;
   subType.prototype = prototype;
}

通过调用上面的函数,实现subTye.prototype的原型是superType.prototype,完成了原型方法的继承。

以上这篇javascript关于继承解析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE不支持getElementsByClassName最终完美解决方案
Dec 17 Javascript
javascript中比较字符串是否相等的方法
Jul 23 Javascript
jQuery中校验时间格式的正则表达式小结
Sep 22 Javascript
js简单实现HTML标签Select联动带跳转
Oct 23 Javascript
JavaScript中的this关键字使用方法总结
Mar 13 Javascript
基于javascript实现九宫格大转盘效果
May 28 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
Jun 16 Javascript
bootstrap下拉列表与输入框组结合的样式调整
Oct 08 Javascript
vue-cli脚手架的安装教程图解
Sep 02 Javascript
Vue编程式跳转的实例代码详解
Jul 10 Javascript
VUE 自定义组件模板的方法详解
Aug 30 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
Mar 04 Javascript
JavaScript继承学习笔记【新手必看】
May 10 #Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
May 10 #Javascript
深入剖析JavaScript:Object类型
May 10 #Javascript
JavaScript的React Web库的理念剖析及基础上手指南
May 10 #Javascript
快速解决Canvas.toDataURL 图片跨域的问题
May 10 #Javascript
jQuery事件的绑定、触发、及监听方法简单说明
May 10 #Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
May 10 #Javascript
You might like
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
PHP 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
PHP模块化安装教程
2016/06/01 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
学习JavaScript设计模式(单例模式)
2015/11/26 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
vue监听dom大小改变案例
2020/07/29 Javascript
python用plt画图时,cmp设置方法
2018/12/13 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
使用html5制作loading图的示例
2014/04/14 HTML / CSS
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
前台文员我鉴定
2014/01/12 职场文书
市场专员岗位职责
2014/02/14 职场文书
一次性工伤赔偿协议书范本
2014/11/25 职场文书
寒假生活随笔
2015/08/15 职场文书
组织委员竞选稿
2015/11/21 职场文书
用Python创建简易网站图文教程
2021/06/11 Python