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 相关文章推荐
jQuery 点击图片跳转上一张或下一张功能的实现代码
Mar 12 Javascript
JavaScript中的setUTCDate()方法使用详解
Jun 11 Javascript
Javascript实现字数统计
Jul 03 Javascript
js实现显示当前状态的导航效果代码
Aug 28 Javascript
详解js中call与apply关键字的作用
Nov 21 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
Jan 27 Javascript
react native实现往服务器上传网络图片的实例
Aug 07 Javascript
详谈Node.js之操作文件系统
Aug 29 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
Dec 07 Javascript
javascript和php使用ajax通信传递JSON的实例
Aug 21 Javascript
JavaScript中工厂函数与构造函数示例详解
May 06 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
Dec 29 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中将字符串转为HTML的实体引用的一个类
2013/02/03 PHP
php遍历目录方法小结
2015/03/10 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
js多功能分页组件layPage使用方法详解
2016/05/19 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
浅谈Webpack多页应用HMR卡住问题
2019/04/24 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
PyQt5实现类似别踩白块游戏
2019/01/24 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
Python json转字典字符方法实例解析
2020/04/13 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
2020/06/02 Python
Python-opencv实现红绿两色识别操作
2020/06/04 Python
CSS3教程(7):CSS3嵌入字体
2009/04/02 HTML / CSS
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
工商管理实习自我鉴定
2013/09/28 职场文书
求职信模板标准格式范文
2014/02/23 职场文书
青春励志演讲稿
2014/04/29 职场文书
广播体操比赛口号
2014/06/10 职场文书
公司租房协议书
2014/10/14 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
python绘图subplots函数使用模板的示例代码
2021/04/30 Python
Python代码风格与编程习惯重要吗?
2021/06/03 Python
常用的Python代码调试工具总结
2021/06/23 Python