链式调用其实跟语言无关,例如下面形式的代码就属于链式调用:
car.start().drive()
下面的代码跟上面的代码作用是相同的
只不过上面的看起来更加简洁:
car.start()
car.drive()
我们可以简化为一行程序。
如果每个方法都返回对象本身,这是可能的。换句话说,实现方式是这样的:
const car = {
start: function() {
console.log('start')
return this
},
drive: function() {
console.log('drive')
return this
}
}
需要注意的是,不能使用arrow函数,因为arrow函数中用作对象方法的arrow函数没有绑定到对象实例。
箭头函数确实很方便,但是这种情况下并不适用。
当不从方法返回一组值时,链式方法调用非常有用,否则显然需要将方法调用分配给变量,并且无法进行链接:
const result = car.start()
if (result) {
car.drive()
}
希望本文,可以帮助大家理解链式调用。