重置Service类属性状态问题?

来源:6-5 从下拉刷新实现认识面向对象实例与静态方法

爱吃鱼的羊

2023-05-04

reset() {
this.page = 1
this.count = 4
this.data = []
this.hasMoreData = true
return this
}
return this 这块没想明白为什么要访回 this
我试着删除了 this 也没报错。
再追问,是不是我缺了哪块知识点,所以没看懂老师写的这行代码。

写回答

2回答

沁尘

2023-05-04

不返回this无法实现调用的时候链式调用。课程里讲过,忘了在哪了,这是个设计模式上的知识点。
0
6
沁尘
回复
爱吃鱼的羊
没问题,今晚上回复你,最近太忙了,都没空。
2023-05-06
共6条回复

沁尘

2023-05-06

我来详细回答下。

从使用层面上来说,这里如果不返回 this,那么你在调用的时候,就只能先调用 reset()函数,然后再调用分页请求的方法。也就是两步调用。但是如果这里返回 this,你就能在调用 reset()之后,紧跟上一个.(这里有个点)然后直接访问分页请求方法。抛开原理和工程实践不谈,这种用法就是流畅,一气呵成,一行代码搞定。

从原理上讲的话,篇幅就有点多了,涉及到 JS 中 的 this 和原型链的设计原理,这块同学需要自行搜索资料学习。

从工程实践上来说,不管什么语言,都能做到这种调用效果,我们一般称呼“链式调用”,这个称呼也很形象,假如我们在一个类方法中最后都返回 this,那么在调用的地方我们就能通过不断.(这里有个点)的方式去调用实例下的方法。这么做的目的除了简化代码行数以外,其实背后还隐含着一个经典、高频使用的设计模式——建造者模式,这块也需要同学自行搜索资料学习。

提交局限于篇幅,这里没法展开跟你解释原理和工程实践上的要点,同学在自行探索的过程中遇到什么疑惑可以随时跟我交流。

0
0

《慕慕到家》家政小程序组件化进阶实战-优质项目

千锤百炼的实践分享,成就你独当一面

494 学习 · 306 问题

查看课程