首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >js链式调用

js链式调用

原创
作者头像
IT工作者
发布2021-12-29 15:17:01
发布2021-12-29 15:17:01
18.2K00
代码可运行
举报
文章被收录于专栏:程序技术知识程序技术知识
运行总次数:0
代码可运行

链式调用其实跟语言无关,例如下面形式的代码就属于链式调用:

代码语言:javascript
代码运行次数:0
运行
复制
car.start().drive()

下面的代码跟上面的代码作用是相同的

只不过上面的看起来更加简洁:

代码语言:javascript
代码运行次数:0
运行
复制
car.start()
car.drive()

我们可以简化为一行程序。

如果每个方法都返回对象本身,这是可能的。换句话说,实现方式是这样的:

代码语言:javascript
代码运行次数:0
运行
复制
const car = {
  start: function() {
    console.log('start')
    return this
  },
  drive: function() {
    console.log('drive')
    return this
  }
}

需要注意的是,不能使用arrow函数,因为arrow函数中用作对象方法的arrow函数没有绑定到对象实例。

箭头函数确实很方便,但是这种情况下并不适用。

当不从方法返回一组值时,链式方法调用非常有用,否则显然需要将方法调用分配给变量,并且无法进行链接:

代码语言:javascript
代码运行次数:0
运行
复制
const result = car.start()
if (result) {
  car.drive()
}

希望本文,可以帮助大家理解链式调用。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档