混合mixin函数_JS自定义混合Mixin函数示例

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

/* 增加函数 */

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());

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

相关标签:JS

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值