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+Dhtml:WEB程序员简易开发工具包(预先体验版)
Nov 07 Javascript
JavaScript面向对象之体会[总结]
Nov 13 Javascript
JS实现动态给图片添加边框的方法
Apr 01 Javascript
浅析JavaScript回调函数应用
May 22 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
Sep 04 Javascript
JavaScript 闭包机制详解及实例代码
Oct 10 Javascript
Angular2平滑升级到Angular4的步骤详解
Mar 29 Javascript
vue.js实现刷新当前页面的方法教程
Jul 05 Javascript
webpack vue项目开发环境局域网访问方法
Mar 20 Javascript
详解JavaScript中的数组合并方法和对象合并方法
May 11 Javascript
JSON生成Form表单的方法示例
Nov 21 Javascript
jQuery实现移动端扭蛋机抽奖
Nov 08 jQuery
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
SONY SRF-M100的电路分析
2021/03/02 无线电
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
浅析is_writable的php实现
2013/06/18 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
Use Word to Search for Files
2007/06/15 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
node.js的Express服务器基本使用教程
2019/01/09 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
python连接mysql调用存储过程示例
2014/03/05 Python
Python基于回溯法子集树模板解决m着色问题示例
2017/09/07 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
对Python 内建函数和保留字详解
2018/10/15 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
Hashtable 添加内容的方式有哪几种,有什么区别?
2012/04/08 面试题
2014年党务公开实施方案
2014/02/27 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
2014七年级班主任工作总结
2014/12/05 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
手写Spirit防抖函数underscore和节流函数lodash
2022/03/22 Javascript