JavaScript混合实现多继承的方法详解
本文实例讲述了JavaScript mixin实现多继承的方法。分享给大家供大家参考,具体如下:
混合简单通俗的讲就是把一个对象的方法和属性拷贝到另一个对象上,注意这个继承还是有区别的js。是一种只支持单继承的语言,毕竟一个对象只有一个原型,如果想实现多继承,那就简单暴力的把需要继承的父类的所有属性都拷贝到子类上,就是使用混合啦。
下面所有代码可以到开源代码库上查看完整版。
一个简单的混合
直接上代码
函数extend(destClass,src类){ var destProto=dest类。原型;var srcProto=srcclass。原型;for(srcProto中的定义变量方法){ if(!destProto[方法]){ destProto[方法]=srcProto[方法];} } }功能Book(){ } Book。原型。打印名称=function(){ console。日志('我是一本书,名叫hello’);};函数JS(){}extend(JS,Book);var JS=new JS();控制台。日志;
现在你应该大概了解混合在做什么。
可以仅仅拷贝某些方法:
函数extend(destClass,srcClass,methods){ var src proto=src class。原型;var destProto=destclass。原型;for(var I=0;长度;风险值方法=方法[I];if(!destProto[方法]){ destProto[方法]=srcProto[方法];} } }功能Book(){ } Book。原型。getname=function(){ };书。原型。setname=function(){ };函数JS() {}extend(JS,Book,[' getName ']);var JS=new JS();控制台。日志;
混合实现多继承
直接上代码。
函数extend(destClass){ var class=array。原型。切片。call(参数,1);for(var I=0;I class es . LengiI){ var SRcclass=class[I];var srcProto=srcclass。原型;var destProto=destclass。原型;for(srcProto中的定义变量方法){ if(!destProto[方法]){ destProto[方法]=srcProto[方法];} } } }功能Book(){ } Book。原型。getname=function(){ };书。原型。setname=function(){ };功能Tech(){ } Tech。原型。show Tech=function(){ };函数JS() {}extend(JS,Book,Tech);var JS=new JS();控制台。日志;
总结
很多前端库里都有混合方法,只是叫法不一样,比如jQuery的延伸,文中我们实现的都是浅拷贝,jQuery中的扩展可以实现深拷贝。很多库会使用混合的方式,将一些工具方法扩展到相应对象中,实现代码复用。
更多关于Java脚本语言相关内容感兴趣的读者可查看本站专题: 《javascript面向对象入门教程》 、 《JavaScript错误与调试技巧总结》 、 《JavaScript数据结构与算法技巧总结》 、 《JavaScript遍历算法与技巧总结》 及《JavaScript数学运算用法总结》
希望本文所述对大家Java脚本语言程序设计有所帮助。
版权声明:JavaScript混合实现多继承的方法详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。