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 while语句和do while语句的区别分析
Dec 08 Javascript
基于jquery &amp; json的省市区联动代码
Jun 26 Javascript
jquery解决图片路径不存在执行替换路径
Feb 06 Javascript
推荐25个超炫的jQuery网格插件
Nov 28 Javascript
基于JavaScript怎么实现让歌词滚动播放
Nov 03 Javascript
Javascript数组Array基础介绍
Mar 13 Javascript
前端性能优化及技巧
May 06 Javascript
js判断是否是手机页面
Mar 17 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
Jul 24 Javascript
解决layui下拉框监听问题(监听不到值的变化)
Sep 28 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
Nov 25 Javascript
关于Node.js中频繁修改代码重启服务器的问题
Oct 15 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小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
探讨php中遍历二维数组的几种方法详解
2013/06/08 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
PHP使用Alexa API获取网站的Alexa排名例子
2014/06/12 PHP
php数组添加元素方法小结
2014/12/20 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
完美的php分页类
2017/10/24 PHP
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
解决vue 更改计算属性后select选中值不更改的问题
2018/03/02 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
python编码总结(编码类型、格式、转码)
2016/07/01 Python
Python使用wxPython实现计算器
2018/01/30 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
交通专业个人自荐信格式
2013/09/23 职场文书
个人自我鉴定
2013/11/07 职场文书
完整版商业计划书
2014/09/15 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
生日寿星公答谢词
2015/09/29 职场文书
python关于集合的知识案例详解
2021/05/30 Python
SQLServer中exists和except用法介绍
2021/12/04 SQL Server