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实现瀑布流的一种简单方法实例分享
Nov 04 Javascript
js单例模式详解实例
Nov 21 Javascript
浅析Node.js查找字符串功能
Sep 03 Javascript
Javascript获取CSS伪元素属性的实现代码
Sep 28 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
Dec 08 Javascript
教你使用javascript简单写一个页面模板引擎
May 05 Javascript
jQuery实现点击水纹波动动画
Apr 10 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
Nov 03 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
Oct 13 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
May 16 Javascript
vue h5移动端禁止缩放代码
Oct 28 Javascript
手机浏览器唤起微信分享(JS)
Oct 11 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 SQL防注入代码集合
2008/04/25 PHP
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
php include类文件超时问题处理
2015/02/06 PHP
php实现微信发红包
2015/12/05 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
JQuery优缺点分析说明
2011/04/10 Javascript
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
详解Django通用视图中的函数包装
2015/07/21 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
python爬虫爬取图片的简单代码
2021/01/18 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
2021/02/06 Python
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
教学个人的自我评价分享
2014/02/16 职场文书
公司股权转让协议书
2014/04/12 职场文书
初二学习计划书范文
2014/04/27 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
2016年学校安全教育月活动总结
2016/04/06 职场文书
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python