成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript的函數(shù)式編程方法

silencezwm / 1771人閱讀

jQuery是一個Internal DSL的典型的例子,ds.js也是使用函數(shù)式編程的風(fēng)格。
鏈?zhǔn)椒椒ㄕ{(diào)用 eg:$(".mydiv").addClass("flash").draggable().css("color", "blue")

一個簡單的列子:

Func = (function() {
    this.add = function(){
        console.log("1");
        return this;
    };
    this.result = function(){
        console.log("2");
        return this;
    };
    return this;
});
var func = new Func();
func.add().result();

創(chuàng)建一個$函數(shù):
html:



調(diào)用方法:
$("head","contents").show().addEvent("click", function(){alert(1)})
封裝方法如下:

(function(){
  function _$(els){
    this.elements = [];//把那些元素作為數(shù)組保存在一個實例屬性中,
    for(var i= 0, len=els.length; i

模擬jquery底層鏈?zhǔn)骄幊蹋?/p>

// 塊級作用域
//特點(diǎn)1 程序啟動的時候 里面的代碼直接執(zhí)行了
//特點(diǎn)2 內(nèi)部的成員變量 外部無法去訪問 (除了不加var修飾的變量)
 
(function(window , undefined){
  // $ 最常用的對象 返回給外界 大型程序開發(fā) 一般使用"_"作為私用的對象(規(guī)范)
  function _$(arguments){
    //實現(xiàn)代碼...這里僅實現(xiàn)ID選擇器
    // 正則表達(dá)式匹配id選擇器
    var idselector = /#w+/ ;
    this.dom ;   // 此屬性 接受所得到的元素
    // 如果匹配成功 則接受dom元素  arguments[0] = "#inp"
    if(idselector.test(arguments[0])){
      this.dom = document.getElementById(arguments[0].substring(1));
    } else {
      throw new Error(" arguments is error !");
    }
  };
 
  // 在Function類上擴(kuò)展一個可以實現(xiàn)鏈?zhǔn)骄幊痰姆椒?  Function.prototype.method = function(methodName , fn){
    this.prototype[methodName] = fn ;
    return this ; //鏈?zhǔn)骄幊痰年P(guān)鍵
  }
 
  // 在_$的原型對象上 加一些公共的方法
  _$.prototype = {
    constructor : _$ ,
    addEvent:function(type,fn){
      // 給你的得到的元素 注冊事件
      if(window.addEventListener){// FF 
        this.dom.addEventListener(type , fn);
      } else if (window.attachEvent){// IE
        this.dom.attachEvent("on"+type , fn);
      }
      return this ; 
    },
    setStyle:function(prop , val){
      this.dom.style[prop] = val ;
      return this ;
    }
  };
 
 
   // window 上先注冊一個全局變量 與外界產(chǎn)生關(guān)系
  window.$ = _$ ;
  // 寫一個準(zhǔn)備的方法
  _$.onReady = function(fn){ 
    // 1 實例化出來_$對象 真正的注冊到window上
    window.$ = function(){
      return new _$(arguments);
    };
    // 2 執(zhí)行傳入進(jìn)來的代碼
    fn();
    // 3 實現(xiàn)鏈?zhǔn)骄幊?    _$.method("addEvent",function(){
      // nothing to do
    }).method("setStyle",function(){
      // nothing to do
    });
 
  };
 
})(window); // 程序的入口 window傳入作用域中
 
 
$.onReady(function(){
  var inp = $("#inp");
  //alert(inp.dom.nodeName);
  //alert($("#inp"));
  inp.addEvent("click",function(){
    alert("我被點(diǎn)擊了!");
  }).setStyle("backgroundColor" , "red");
});

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/89867.html

相關(guān)文章

  • SegmentFault 技術(shù)周刊 Vol.16 - 淺入淺出 JavaScript 函數(shù)編程

    摘要:函數(shù)式編程,一看這個詞,簡直就是學(xué)院派的典范。所以這期周刊,我們就重點(diǎn)引入的函數(shù)式編程,淺入淺出,一窺函數(shù)式編程的思想,可能讓你對編程語言的理解更加融會貫通一些。但從根本上來說,函數(shù)式編程就是關(guān)于如使用通用的可復(fù)用函數(shù)進(jìn)行組合編程。 showImg(https://segmentfault.com/img/bVGQuc); 函數(shù)式編程(Functional Programming),一...

    csRyan 評論0 收藏0
  • 翻譯連載 | 附錄 C:函數(shù)編程函數(shù)庫-《JavaScript輕量級函數(shù)編程》 |《你不知道J

    摘要:為了盡可能提升互通性,已經(jīng)成為函數(shù)式編程庫遵循的實際標(biāo)準(zhǔn)。與輕量級函數(shù)式編程的概念相反,它以火力全開的姿態(tài)進(jìn)軍的函數(shù)式編程世界。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關(guān)于譯者:這是一個流淌著滬江血液的純粹工程:認(rèn)真,是 HTML 最堅實的梁柱;分享,是 CSS 里最閃耀的一瞥;總結(jié),...

    Miracle 評論0 收藏0
  • 函數(shù)編程JavaScript進(jìn)行斷舍離

    摘要:函數(shù)式編程一開始我并不理解。漸漸地,我熟練掌握了使用函數(shù)式的方法去編程。但是自從學(xué)習(xí)了函數(shù)式編程,我將循環(huán)都改成了使用和來實現(xiàn)。只有數(shù)據(jù)和函數(shù),而且因為函數(shù)沒有和對象綁定,更加容易復(fù)用。在函數(shù)式的中,這些問題不復(fù)存在。 譯者按: 當(dāng)從業(yè)20的JavaScript老司機(jī)學(xué)會函數(shù)式編程時,他扔掉了90%的特性,也不用面向?qū)ο罅?,最后發(fā)現(xiàn)了真愛?。。?! 原文: How I rediscov...

    dkzwm 評論0 收藏0
  • 翻譯連載 |《你不知道JS》姊妹篇 |《JavaScript 輕量級函數(shù)編程》- 第 1 章:

    摘要:所以我覺得函數(shù)式編程領(lǐng)域更像學(xué)者的領(lǐng)域。函數(shù)式編程的原則是完善的,經(jīng)過了深入的研究和審查,并且可以被驗證。函數(shù)式編程是編寫可讀代碼的最有效工具之一可能還有其他。我知道很多函數(shù)式編程編程者會認(rèn)為形式主義本身有助于學(xué)習(xí)。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson?。 禮ou-Dont-Know-JS》作者 關(guān)于譯者:這是一個流淌著滬江血液...

    omgdog 評論0 收藏0
  • JavaScript 函數(shù)編程(一)

    摘要:函數(shù)式編程的哲學(xué)就是假定副作用是造成不正當(dāng)行為的主要原因。函數(shù)組合面向?qū)ο笸ǔ1槐扔鳛槊~,而函數(shù)式編程是動詞。尾遞歸優(yōu)化函數(shù)式編程語言中因為不可變數(shù)據(jù)結(jié)構(gòu)的原因,沒辦法實現(xiàn)循環(huán)。 零、前言 說到函數(shù)式編程,想必各位或多或少都有所耳聞,然而對于函數(shù)式的內(nèi)涵和本質(zhì)可能又有些說不清楚。 所以本文希望針對工程師,從應(yīng)用(而非學(xué)術(shù))的角度將函數(shù)式編程相關(guān)思想和實踐(以 JavaScript 為...

    hoohack 評論0 收藏0
  • JavaScript 函數(shù)編程導(dǎo)論

    摘要:函數(shù)式編程導(dǎo)論從屬于筆者的前端入門與工程實踐。函數(shù)式編程即是在軟件開發(fā)的工程中避免使用共享狀態(tài)可變狀態(tài)以及副作用。 JavaScript 函數(shù)式編程導(dǎo)論從屬于筆者的Web 前端入門與工程實踐。本文很多地方是講解函數(shù)式編程的優(yōu)勢,就筆者個人而言是認(rèn)可函數(shù)式編程具有一定的好處,但是不推崇徹底的函數(shù)式編程化,特別是對于復(fù)雜應(yīng)用邏輯的開發(fā)。筆者在應(yīng)用的狀態(tài)管理工具中就更傾向于使用MobX而不是...

    forrest23 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<