JS自定義混合Mixin函數(shù)示例
本文實例講述了JS自定義混合Mixin函數(shù)。分享給大家供大家參考,具體如下:
<script type="text/javascript">
/* 增加函數(shù) */
function augment(receivingClass, givingClass) {
for(methodName in givingClass.prototype) {
if(!receivingClass.prototype[methodName]) {
receivingClass.prototype[methodName] = givingClass.prototype[methodName];
}
}
}
/* 改進的增加函數(shù) */
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) { // 構(gòu)造函數(shù)
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>
結(jié)果:

經(jīng)過拼接處理之后,author就獲取到了hello方法了,屬性還是自己的name。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript常用函數(shù)技巧匯總》、《javascript面向?qū)ο笕腴T教程》、《JavaScript中json操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
JS 實現(xiàn)倒計時數(shù)字時鐘效果【附實例代碼】
下面小編就為大家?guī)硪黄狫S 實現(xiàn)倒計時數(shù)字時鐘效果【附實例代碼】。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做一個參考。2016-03-03
移動端a標簽下載文件重命名(download)不生效解決辦法
在移動端使用a標簽下載文件時,文件重命名可能不生效,尤其是在APP內(nèi)嵌頁面中,這通常是因為跨域問題導(dǎo)致的,文中將解決辦法介紹的非常詳細,需要的朋友可以參考下2024-10-10
JS實現(xiàn)動態(tài)移動層及拖動浮層關(guān)閉的方法
這篇文章主要介紹了JS實現(xiàn)動態(tài)移動層及拖動浮層關(guān)閉的方法,可實現(xiàn)動態(tài)拖動浮動窗口及關(guān)閉窗口的功能,非常具有實用價值,需要的朋友可以參考下2015-04-04
如何讓easyui gridview 寬度自適應(yīng)窗口改變及fitColumns應(yīng)用
在使用Easyui GridView時,如果要Gridview的寬度和窗口的寬度相同,只需要設(shè)置fitColumns: true即可,感興趣的你不要走開啊,接下來為您詳細介紹2013-01-01
JavaScript開發(fā)中需要搞懂的字符編碼總結(jié)
字符集就是字符的集合,字符編碼則代表字符集的實際編碼規(guī)則,是用于計算機解析字符的。本文為大家整理了JavaScript開發(fā)中需要搞懂的字符編碼,希望對大家有所幫助2023-02-02
JS變量中有var定義和無var定義的區(qū)別以及es6中l(wèi)et命令和const命令
這篇文章主要介紹了JS變量中有var定義和無var定義的區(qū)別以及es6中l(wèi)et命令和const命令,需要的朋友可以參考下2017-02-02

