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 相关文章推荐
javascript 客户端验证上传图片的大小(兼容IE和火狐)
Aug 15 Javascript
jQuery AJAX 调用WebService实现代码
Mar 24 Javascript
js脚本获取webform服务器控件的方法
May 16 Javascript
jQuery中noConflict()用法实例分析
Feb 08 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
May 15 Javascript
javascript文件加载管理简单实现方法
Jul 25 Javascript
AngularJS自动表单验证
Feb 01 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
Mar 03 Javascript
JQuery选中select组件被选中的值方法
Mar 08 jQuery
详解React之key的使用和实践
Sep 29 Javascript
vue代码分割的实现(codesplit)
Nov 13 Javascript
JS Ajax请求会话过期处理问题解决方法分析
Nov 16 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
用php获取远程图片并把它保存到本地的代码
2008/04/07 PHP
PHP Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
zen_cart实现支付前生成订单的方法
2016/05/06 PHP
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
使用jquery自定义鼠标样式满足个性需求
2013/11/05 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
Vue实现push数组并删除的例子
2019/11/01 Javascript
jquery简易手风琴插件的封装
2020/10/13 jQuery
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
Python os模块学习笔记
2015/06/21 Python
使用Mixin设计模式进行Python编程的方法讲解
2016/06/21 Python
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
详解Python核心对象类型字符串
2018/02/11 Python
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
python在不同条件下的输入与输出
2020/02/13 Python
大学生物业管理求职信
2013/10/24 职场文书
中学校庆方案
2014/03/17 职场文书
岗位聘任书范文
2014/03/29 职场文书
文艺演出策划方案
2014/06/07 职场文书
大学生村官个人总结
2015/02/15 职场文书
幼师个人总结范文
2015/02/28 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js
详解MySQL的内连接和外连接
2023/05/08 MySQL