/

在 JavaScript 中使用鏈式方法調用

在 JavaScript 中使用鏈式方法調用

在 JavaScript 中,有時我們可以使用鏈式方法調用,像這樣:

1
car.start().drive()

這樣做非常方便。

相比於這樣寫:

1
2
car.start()
car.drive()

我們可以將其簡化為一行。

這是可能的,只要每個方法都返回對象本身。換句話說,實現必須類似於這樣:

1
2
3
4
5
6
7
8
9
10
const car = {
start: function() {
console.log('start')
return this
},
drive: function() {
console.log('drive')
return this
}
}

需要注意的是,你不能使用箭頭函數,因為箭頭函數中的 this 不會綁定到對象實例。

我喜歡始終使用箭頭函數,這是其中一種不能使用箭頭函數的情況。

當你不從方法返回一組值時,鏈式方法調用非常有用,否則你顯然需要將方法調用賦值給變量,而鏈式調用是不可能的:

1
2
3
4
const result = car.start()
if (result) {
car.drive()
}

tags: [“JavaScript”, “method chaining”]