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 相关文章推荐
学习面向对象之面向对象的基本概念:对象和其他基本要素
Nov 30 Javascript
Google的跟踪代码 动态加载js代码方法应用
Nov 12 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
Mar 25 Javascript
jquery插件ajaxupload实现文件上传操作
Dec 09 Javascript
JavaScript截取、切割字符串的技巧
Jan 07 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
May 30 Javascript
jQuery实现的自定义滚动条实例详解
Sep 20 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
Jun 19 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
Dec 03 Javascript
vue项目中使用fetch的实现方法
Apr 25 Javascript
JS实现的自定义map方法示例
May 17 Javascript
Vue+Element-U实现分页显示效果
Nov 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
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
php探针不显示内存解决方法
2019/09/17 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
Javascript解决常见浏览器兼容问题的12种方法
2010/01/04 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
Javascript非构造函数的继承
2015/04/27 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
2019/07/13 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
nodejs使用socket5进行代理请求的实现
2020/02/21 NodeJs
Python中统计函数运行耗时的方法
2015/05/05 Python
python实现简单登陆系统
2018/10/18 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
大学生自我鉴定范文模板
2014/01/21 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
KTV的创业计划书范文
2014/02/02 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
五四青年节活动总结
2015/02/10 职场文书
python 用递归实现通用爬虫解析器
2021/04/16 Python
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
MySQL之select、distinct、limit的使用
2021/11/11 MySQL
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang
CSS list-style-type属性使用方法
2023/05/21 HTML / CSS