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 相关文章推荐
event.currentTarget与event.target的区别介绍
Dec 31 Javascript
js 获取元素下面所有li的两种方法
Apr 14 Javascript
AngularJS数据源的多种获取方式汇总
Feb 02 Javascript
JS奇技之利用scroll来监听resize详解
Jun 15 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
Oct 27 Javascript
vue中使用element-ui进行表单验证的实例代码
Jun 22 Javascript
vue中typescript装饰器的使用方法超实用教程
Jun 17 Javascript
JavaScript实现图片放大镜效果
Jun 27 Javascript
JS 数组基本用法入门示例解析
Jan 16 Javascript
Vue中通过属性绑定为元素绑定style行内样式的实例代码
Apr 30 Javascript
js实现html滑动图片拼图验证
Jun 24 Javascript
详解JVM系列之内存模型
Jun 10 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源代码
2009/08/21 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
PHP类的特性实例分析
2016/09/28 PHP
jquery.validate使用攻略 第三部
2010/07/01 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
JS表的模拟方法
2015/02/05 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
2016/12/21 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
JS实现的找零张数最小问题示例
2017/11/28 Javascript
vue下拉列表功能实例代码
2018/04/08 Javascript
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
js实现unicode码字符串与utf8字节数据互转详解
2019/03/21 Javascript
vue实现记事本功能
2019/06/26 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
python网络爬虫采集联想词示例
2014/02/11 Python
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
python同步两个文件夹下的内容
2019/08/29 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
2020/01/25 Python
Python如何实现定时器功能
2020/05/28 Python
UGG英国官方网站:UGG UK
2018/02/08 全球购物
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
客服文员岗位职责
2013/11/29 职场文书
企业给企业的表扬信
2014/01/13 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
本科应届生自荐信
2014/06/29 职场文书
教师节感恩老师演讲稿
2014/08/28 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
使用python如何删除同一文件夹下相似的图片
2021/05/07 Python
eval(cmd)与eval($cmd)的区别与联系
2021/07/07 PHP
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers