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 相关文章推荐
Mootools 1.2教程 正则表达式
Sep 15 Javascript
通过JS 获取Mouse Position(鼠标坐标)的代码
Sep 21 Javascript
基于jQuery实现复选框是否选中进行答题提示
Dec 10 Javascript
js自定义回调函数
Dec 13 Javascript
JQuery异步加载PartialView的方法
Jun 07 Javascript
jQuery封装的屏幕居中提示信息代码
Jun 08 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
Jun 21 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
Mar 21 jQuery
利用NPM淘宝的node.js镜像加速nvm
Mar 27 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
Aug 12 Javascript
微信小程序 wx:for遍历循环使用实例解析
Sep 09 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
Jul 19 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
如何使用Strace调试工具
2013/06/03 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
javascript取消文本选定的实现代码
2010/11/14 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
详解Angular的双向数据绑定(MV-VM)
2016/12/26 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
EasyUI的DataGrid每行数据添加操作按钮的实现代码
2017/08/22 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
Python中is与==判断的区别
2017/03/28 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
Python+pandas计算数据相关系数的实例
2018/07/03 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
英国电子专家:maplin
2019/09/04 全球购物
企业管理培训感言
2014/01/27 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
产品包装策划方案
2014/05/18 职场文书
演讲稿的格式及范文
2014/08/22 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
java代码实现空间切割
2022/01/18 Java/Android
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫
python游戏开发Pygame框架
2022/04/22 Python
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL