jQuery 的鏈式呼叫與 DSL 應用

2022-03-06 03:34:14 字數 487 閱讀 1613

看到一篇文章,將 jquery 的鏈式呼叫推崇得很高。 其核心是這樣一段話:

jquery可以說是挑了乙個最容易實現的語法模型來做,永遠只有一種token,因此永遠也只有一種狀態,這種狀態當然也是永遠有效的,你根本不可能給jquery輸入乙個當前狀態無效的token。jquery的唯一狀態就是乙個jquery物件例項,其本質就是乙個元素集合。讀入的token可能是各種針對這個元素集合的操作,但它的返回一定還是乙個元素集合。這使得jquery的語法分析器不會進入無效狀態,也就無需判斷無效狀態,因此大大簡化了internal dsl實現中常見的乙個難題。

實際上,就是讓每次呼叫後的返回值都是jquery物件本身,函式修改的狀態被物件包含。因此才可以無限鏈式呼叫。我自己寫的mysql查詢助手也是這樣的寫法,用起來感覺真的很棒。

文章的另乙個觀點是認為,依靠這種方式,可以構建dsl,也就是領域語言。

要描述領域事件,三種方法,1、傳統計算機語言 2、自然語言 3、利用動態的計算機語言盡量逼進自然語言

jQuery鏈式呼叫

鏈式 input type button eq 0 click function end eq 1 click function end eq 2 toggle function function 找出type型別為button的input元素 找到第乙個按鈕,並繫結click事件處理函式 返回所有...

學習jQuery鏈式呼叫

jquery物件的方法會在執行完後返回這個jquery物件,所有jquery物件的方法可以連起來寫 div1 id為div1的元素 children ul 該元素下面的ul子元素 slidedown fast 高度從零變到實際高度來顯示ul元素 parent 跳到ul的父元素,也就是id為div1的...

jQuery鏈式呼叫的原理

jquery在封裝的時候把操作dom的api函式封裝並且放到了jquery函式內部的原型物件是哪個 並且封裝的api函式都有乙個返回值this,這個this指向的是jquery的例項。class factorya b c var factoryobj newfactory factoryobj.a ...