《javascript設計模式》學習筆記四:Javascript面向對象程序設計鏈式調用實例分析
本文實例講述了Javascript面向對象程序設計鏈式調用。分享給大家供大家參考,具體如下:
1.鏈式調用:
jquery可能是目前大家最常用到的js框架了,也習慣了如下的調用方式:
$('.someclass').show().css('xxx','xxxx').click(function(){}).xxx……
這種調用方式就叫做鏈式調用,也就是說在調用一個方法之后,可以使用方法的返回值來繼續(xù)進行方法調用。
2.如何實現(xiàn)鏈式調用:
了解了什么是鏈式調用,我們再來看如何實現(xiàn)鏈式調用,從1中所述我們應該知道鏈式調用的關鍵在于方法的返回值,只要方法的返回值都是調用該方法的對象,那么,我們就可以實現(xiàn)鏈式調用了,我們仿照jquery,使用$作為對象的選擇器:
(function(){
function _$(els){
this.elements = [];
for(var i=0, len=els.length;i<len;i++){
var elements = els[i];
if(typeof element = ‘string'){
element = document.getElementByIdx_x_x(element);
}
}
this.elements.push(element);
}
_$.prototype = {
each:function(fn){
for(var i=0,len=this.elements.length;i<len;i++){
fn.call(this, this.elements[i]);
}
return this;
},
setStyle: function(prop, val){
……
},
show:function(){
……
},
……
}
window.$ = function(){
return new _$(arguments);
}
})();
上面的代碼就實現(xiàn)了一個簡單的鏈式調用對象,并且使用一個_$作為$的別名,以防止$被其他代碼改寫而導致整個對象的定義丟失。
附:一個簡單鏈式調用示例:
/*
map()
items 遍歷的數(shù)組的每一項
*/
var arr = [1,2,3];
var num = arr.map(function(items){
return items + 1;
});
console.log(num);//[2,3,4 var arr = [1,2,3];
var num = arr.map(function (items) {
return items+1;
}).reduce(function (a,b) {//[2,3,4].reduce()
return a+b;
})
console.log(num);//0 --- 2+3+4 = 9]
/*
reduce 實現(xiàn)數(shù)組里的每個數(shù)相加,也就是給數(shù)組的每一項求總和
reduce(function(a,b){
return a+b;
},a)--a的初始值
*/
var arr = [1,2,3];
var num_1 = arr.reduce(function (a,b) {
return a+b;
})
console.log(num_1);//6
/*
鏈式調用
一個鏈子接一個鏈子
*/
var arr = [1,2,3];
var num = arr.map(function (items) {
return items+1;
}).reduce(function (a,b) {//[2,3,4].reduce()
return a+b;
})
console.log(num);//0 --- 2+3+4 = 9
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數(shù)學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
- JavaScript鏈式調用原理與實現(xiàn)方法詳解
- 在JavaScript中實現(xiàn)鏈式調用的實現(xiàn)
- JavaScript的級聯(lián)函數(shù)用法簡單示例【鏈式調用】
- JavaScript鏈式調用實例淺析
- javascript簡單鏈式調用案例分析
- 學習JavaScript設計模式(鏈式調用)
- JavaScript DSL 流暢接口(使用鏈式調用)實例
- JS鏈式調用的實現(xiàn)方法
- JavaScript中兩種鏈式調用實現(xiàn)代碼
- javascript中的鏈式調用
- javascript 支持鏈式調用的異步調用框架Async.Operation
- JavaScript 異步調用框架 (Part 5 - 鏈式實現(xiàn))
- 詳解JavaScript中的鏈式調用
相關文章
實例詳解JSON數(shù)據(jù)格式及json格式數(shù)據(jù)域字符串相互轉換
JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。JSON采用完全獨立于語言的文本格式,這些特性使JSON成為理想的數(shù)據(jù)交換語言2016-01-01
JS生態(tài)系統(tǒng)加速npm腳本優(yōu)化及性能分析探索
這篇文章主要為大家介紹了JS生態(tài)系統(tǒng)加速npm腳本優(yōu)化及性能分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01
javascript自定義函數(shù)參數(shù)傳遞為字符串格式
本節(jié)主要介紹了通過自定義javascript函數(shù)傳遞參數(shù)為字符串格式的,用this傳遞、引號缺省,示例如下2014-07-07
微信小程序數(shù)據(jù)分析之自定義分析的實現(xiàn)
這篇文章主要介紹了微信小程序數(shù)據(jù)分析之自定義分析的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08

