在尋找如何設計一個Javascript API的時候,發現了Method Chaining這個東西,方法鏈,看起來似乎很強大,也挺有意思的,而這個東西也是過去我們常看到的。 。
Javascript Method Chaining
在維基百科上有這樣的解釋:
Method chaining, also known as named parameter idiom, is a common syntax for invoking multiple method calls in object-oriented programming languages. Each method returns an object, allowing the state tocin allowing notincine allowing the statementin. ates the need for intermediate variables. A method chain is also known as a train wreck due to the increase in the number of methods that come one after another in the same line that occurs as more methodbreaks oremyk methodlar unydough methods ? methods.
拿翻譯工具翻譯了一下:
方法鏈,也被稱為命名參數法,是在物件導向的程式語言呼叫的呼叫多個方法的通用語法。每一個方法傳回一個對象,允許電話連接到一起,在一個單一的聲明。連結是語法糖,省去了中間變數的需要。方法鏈也被稱為火車殘骸中由於方法來相繼發生的同一行以上的方法都鎖在即使換行通常添加方法間的數量增加。
Method Chaining 使用
目測對於方法鏈用得最多的,應該就是jQuery了。
// chaining
$("#person").slideDown('slow')
.addClass('grouped')
.css('margin-left', '11px');
我們可以用這樣的用法來呼叫這個。 jQuery嚴重依賴連結。這使得它很容易調用的幾個方法相同的選擇。這也使得程式碼更清晰和防止執行相同的選擇幾次(提高效能)。沒有方法鏈的時候則是下面的樣子
var p = $('#person');
p.slideDown('slow');
p.addClass('grouped');
p.css('margin-left', '11px');
看起來和設計模式中的builder很像,不同的是,這裡的p是方法,而不是一個類別。
Javascript 方法鏈範例
在之前我們說到Javascript 高階函數 的時候,說到的print('Hello')('World'),而這種用法的結果可能會變成這樣子。
function f(i){
return function(e){
i =e;
return function(e){
i =e;
return function(e){
alert(i e);
};
};
};
};
f(1)(2)(3)(4); //10
這是網路上的一個例子,然而也是我上一次寫鍊式呼叫的作法。看起來弱爆了。
var func = (function() {
戻る{
追加: function () {
console.log('1');
戻る{
結果: function () {
console.log('2');
}
}
}
}
})();
func.add().result();
実際、すべての関数に return this があるはずなので、次のようになります:
Func = (function() {
This.add = function(){
console.log('1');
これを返します;
};
This.result = function(){
console.log('2');
これを返します;
};
これを返してください;
});
var func = new Func();
func.add().result();
もちろん、最後の 2 つの文を置き換えることもできます
var func = new Func();
func.add().result();
になる
new Func().add().result();
その他
最後に、わかりにくい箇所として少し比較します:
メソッドチェーン VS プロトタイプチェーン
プロトタイプ チェーンとメソッド チェーンはいくつかの点で似ていますが、次のような違いがあります。
1. プロトタイプチェーンにはプロトタイプの使用が必要です
2. メソッドチェーンはメソッド

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版