在 JavaScript 中,有時我們可以使用鏈式方法調用,像這樣:
car.start().drive()
這樣做非常方便。
相比於這樣寫:
car.start()
car.drive()
我們可以將其簡化為一行。
這是可能的,只要每個方法都返回對象本身。換句話說,實現必須類似於這樣:
const car = {
start: function() {
console.log('start')
return this
},
drive: function() {
console.log('drive')
return this
}
}
需要注意的是,你不能使用箭頭函數,因為箭頭函數中的 this
不會綁定到對象實例。
我喜歡始終使用箭頭函數,這是其中一種不能使用箭頭函數的情況。
當你不從方法返回一組值時,鏈式方法調用非常有用,否則你顯然需要將方法調用賦值給變量,而鏈式調用是不可能的:
const result = car.start()
if (result) {
car.drive()
}