本文实例讲述了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。
更多关于JavaScript相关内容可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家JavaScript程序设计有所帮助。
原文链接:https://www.f2er.com/js/44143.html