函數鍊是一種程式設計技術,可讓開發人員建立一系列以特定順序執行的操作。在 JavaScript 中,這是透過傳回函數本身和使用 this 關鍵字結合來實現的。
要了解連結的原理,讓我們來看一個工作範例:
<code class="js">var one = function(num) { this.oldnum = num; this.add = function() { this.oldnum++; return this; } if (this instanceof one) { return this.one; } else { return new one(num); } } var test = one(1).add().add();</code>
在此例如,one 函數是用數字建構的。它定義了一個 add 函數,該函數增加 oldnum 屬性並傳回它。 if 語句檢查函數是否被當作建構函式呼叫(使用 new),如果沒有,則傳回 one 的新實例。
表達式 one(1).add().add() 先建立一個new 一個對象,初始值為 1。然後,在此物件上呼叫 add 函數兩次,每次都會遞增 oldnum 屬性。最後,變數 test 保存結果,即 oldnum 設定為 3 的一個物件。
相較之下,以下範例沒有正確連結:
<code class="js">var gmap = function() { this.add = function() { alert('add'); return this; } if (this instanceof gmap) { return this.gmap; } else { return new gmap(); } } var test = gmap.add();</code>
這裡,gmap函數不會在其方法中傳回 this,因此連結被破壞。表達式 gmap.add() 試圖呼叫 gmap 建構函數本身的 add 方法,這並沒有如預期般運作。
成功連結的關鍵是 this 關鍵字的使用,它指的是目前物件。透過從方法傳回此值,呼叫者可以再次存取該物件並繼續操作序列。
連結可以是在 JavaScript 中編寫簡潔且富有表現力的程式碼的強大技術。透過理解上述原則,開發人員可以有效地利用鏈來增強其應用程式功能。
以上是JavaScript 中基本物件和函數連結的原則是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!