JS自定义混合Mixin函数示例


Posted in Javascript onNovember 26, 2016

本文实例讲述了JS自定义混合Mixin函数。分享给大家供大家参考,具体如下:

<script type="text/javascript">
/* 增加函数 */
function augment(receivingClass, givingClass) {
 for(methodName in givingClass.prototype) {
  if(!receivingClass.prototype[methodName]) {
   receivingClass.prototype[methodName] = givingClass.prototype[methodName];
  }
 }
}
/* 改进的增加函数 */
function augment(receivingClass, givingClass) {
 if(arguments[2]) { // Only give certain methods.
  for(var i = 2, len = arguments.length; i < len; i++) {
   receivingClass.prototype[arguments[i]] = givingClass.prototype[arguments[i]];
  }
 }
 else { // Give all methods.
  for(methodName in givingClass.prototype) {
   if(!receivingClass.prototype[methodName]) {
    receivingClass.prototype[methodName] = givingClass.prototype[methodName];
   }
  }
 }
}
var Author = function Author(name, books) { // 构造函数
 this.name = name;
 this.books = books || 'default value';
};
Author.prototype = {
 getName: function() {
  return this.name;
 },
 getBooks: function() {
  return this.books;
 }
};
var Editor = function Editor() {
};
Editor.prototype = {
 hello: function() {
  return 'Hello,'+this.name;
 }
};
augment(Author, Editor);
var author = new Author('Ross Harmes', ['JavaScript Design Patterns']);
console.log(author.getName());
console.log(author.getBooks());
console.log(author.hello());
</script>

结果:

JS自定义混合Mixin函数示例

经过拼接处理之后,author就获取到了hello方法了,属性还是自己的name。

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js播放wav文件(源码)
Apr 22 Javascript
Extjs表单常见验证小结
Mar 07 Javascript
js 针对html DOM元素操作等经验累积
Mar 11 Javascript
js控制href内容的连接内容的变化示例
Apr 30 Javascript
JSON.parse()和JSON.stringify()使用介绍
Jun 20 Javascript
AngularJS入门教程之Hello World!
Dec 06 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
Mar 03 Javascript
DOM中事件处理概览与原理的全面解析
Aug 16 Javascript
webpack入门必知必会
Jan 16 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
Mar 15 Javascript
vue弹窗消息组件的使用方法
Sep 24 Javascript
微信小程序数据统计和错误统计的实现方法
Jun 26 Javascript
JS克隆,属性,数组,对象,函数实例分析
Nov 26 #Javascript
JS匿名函数类生成方式实例分析
Nov 26 #Javascript
正则表达式替换html元素属性的方法
Nov 26 #Javascript
js初始化验证实例详解
Nov 26 #Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
Nov 26 #Javascript
JS匿名函数实例分析
Nov 26 #Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
Nov 26 #Javascript
You might like
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
php判断访问IP的方法
2015/06/19 PHP
smarty中改进truncate使其支持中文的方法
2016/05/30 PHP
如何在PHP中生成随机数
2020/06/04 PHP
js文字滚动停顿效果代码
2008/06/28 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
原生JS实现列表内容自动向上滚动效果
2019/05/22 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
Python获取apk文件URL地址实例
2013/11/01 Python
python并发和异步编程实例
2018/11/15 Python
python 多线程串行和并行的实例
2019/02/22 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
Python基于smtplib模块发送邮件代码实例
2020/05/29 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
墨西哥网上超市:Superama
2018/07/10 全球购物
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
求职信模板怎么做
2014/01/26 职场文书
保险公司早会主持词
2014/03/22 职场文书
本科生求职信
2014/06/17 职场文书
学习优秀党员杨宗兴先进事迹材料思想汇报
2014/09/14 职场文书
党的作风建设心得体会
2014/10/22 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
小学三年级数学教学反思
2016/02/16 职场文书
导游词之广州陈家祠
2019/10/21 职场文书
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android