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 相关文章推荐
Javascript中的window.event.keyCode使用介绍
Apr 26 Javascript
JS 添加千分位与去掉千分位的示例
Jul 11 Javascript
利用JavaScript检测CPU使用率自己写的
Mar 22 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
Sep 30 Javascript
jQuery实现的tab标签切换效果示例
Sep 05 Javascript
在javaScript中检测数据类型的几种方式小结
Mar 04 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
Apr 11 Javascript
vue使用iframe嵌入网页的示例代码
Jun 09 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
May 11 Javascript
JavaScript设计模式之工厂模式简单实例教程
Jul 03 Javascript
原生JS实现相邻月份日历
Oct 13 Javascript
vue3+typeScript穿梭框的实现示例
Dec 29 Vue.js
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动态生成虚拟现实VRML网页
2006/10/09 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
深入浅析Yii admin的权限控制
2016/08/31 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
return false,对阻止事件默认动作的一些测试代码
2010/11/17 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
利用JS实现数字增长
2016/07/28 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
javascript验证form表单数据的案例详解
2019/03/25 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
Python读写/追加excel文件Demo分享
2018/05/03 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
python 发送get请求接口详解
2020/11/17 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
快速实现一个简单的canvas迷宫游戏的示例
2018/07/04 HTML / CSS
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
土木工程专业个人求职信
2013/12/30 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书