博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript继承6:终极继承者----寄生组合式继承
阅读量:6873 次
发布时间:2019-06-26

本文共 1183 字,大约阅读时间需要 3 分钟。

/** 寄生式继承依托于原型继承,原型继承又与类式继承想象。* 即: 原型与构造函数的组合继承* 寄生式继承  继承原型* 传递参数 childClass 子类* 传递参数 parentClass 父类*///原型式继承function inheritObj(obj){    //声明一个过渡函数对象    function F(){}    //过渡对象的原型继承父对象    F.prototype = obj;    //返回过渡对象的一个实例,该实例的原型继承了父对象    return new F();}function inheritPrototype(childClass,parentClass){    //复制一份父类原型副本保存在变量中    var p = inheritObj(parentClass.prototype);    //修正因为重写子类原型导致子类的constructor属性被修改    p.constructor = childClass;    //设置子类原型    childClass.prototype = p;}// 定义父类function ParentClass(name){    this.name = name;    this.books = ['Html'];}//定义父类原型方法ParentClass.prototype.getName = function(){    console.log(this.name);}//定义子类function ChildClass(name,time){    //构造函数是继承    ParentClass.call(this,name);    //子类新增属性    this.time = time;}// 寄生式继承父类原型inheritPrototype(ChildClass,ParentClass);//子类新增方法ChildClass.prototype.getTime = function(){    console.log(this.time);}// testvar child1 = new ChildClass('react',2018);var child2 = new ChildClass('vue',2017);child1.books.push('css');console.log(child1.books)     // ['Html','css']console.log(child2.books)     // ['html']child2.getName()              // Vuechild2.getTime()              // 2017

设计模式中的经典笔录

转载地址:http://yjpfl.baihongyu.com/

你可能感兴趣的文章
[Android Traffic] 看无线电波如何影响网络操作]
查看>>
【转】Linux命令之查看文件占用空间大小-du,df
查看>>
Cadence ORCAD CAPTURE元件库介绍
查看>>
(1)ActivityThread分析
查看>>
This configuration file was broken by system-config-keyboard
查看>>
什么时候该使用NoSQL存储数据库?
查看>>
html总结
查看>>
Java知多少(上)
查看>>
使用JQUERY实现局部页面定时刷新
查看>>
[ES6] 23. Rest Parameters & Spread Parameters
查看>>
HOW TO: 在 Visual C# .NET 应用程序中提供文件拖放功能
查看>>
【Android Demo】获取指定网页的页面源代码
查看>>
spring mvc使用的一些注意事项
查看>>
android_我的第一个Android程序
查看>>
可中断套接字(网络)
查看>>
内存优化之封装九宫格
查看>>
webapp调试工具weinre的使用
查看>>
VS2010中将CString转换为const char*
查看>>
基于jQuery游戏网站焦点图轮播特效
查看>>
LeetCode——Largest Number
查看>>