JS自定义混合Mixin函数示例

前端之家收集整理的这篇文章主要介绍了JS自定义混合Mixin函数示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了JS自定义混合Mixin函数分享给大家供大家参考,具体如下:@H_502_1@

增加函数 */ 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());

结果:@H_502_1@

@H_502_1@@H_502_1@

经过拼接处理之后,author就获取到了hello方法了,属性还是自己的name。@H_502_1@

更多关于JavaScript相关内容可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》、《》及《》@H_502_1@

希望本文所述对大家JavaScript程序设计有所帮助。@H_502_1@

猜你在找的JavaScript相关文章