封装形变类(2)
来源:6-2 封装形变类(2)
weixin_慕的地5241954
2019-10-18 07:11:21
为什么在_add里return this了,还要在 其他动画里加return,这两个return的具体是什么,能结合代码说一下吗?
2回答
同学你好!
首先要明白:因为调用函数,得到的是函数的返回值,若是没有返回值,会默认返回undefined
首先通过tf.translate('200px, 200px')调用translate方法, 动画效果是执行了,但是translate没有返回值,默认返回undefined,就相当于用undefined调用scale方法,所以调用不到,因此会报错:

所以translate函数中是一定要添加返回值的。
调用_add函数,得到其返回值,如果没有_add的返回值,所以得到的是undefined,就是bh = undefined,然后translate函数会将调用_add得到的返回值undefined返回了。这样translate函数最终得到的返回值也是undefined。

所以_add函数中也是一定要添加返回值的。
同学可以再理解一下。如还有其他别的疑问建议同学新开提问到问答区进行提问,这样的话便于同学复习时候进行归纳和总结~
如果帮助到了你,欢迎采纳,祝学习愉快~
好帮手慕码
2019-10-18
同学你好!
都是返回的意思,这块很简单,看下这个描述:因为调用函数,得到的是函数的返回值哦,若是没有返回值,会默认返回undefined,则无法接着在后面执行链式调用,会报错:

因为先调用的是translate,如这里没有返回值的话,你在外面得到的依然是undefined,无法接着执行下一个。但是添加return的话,会得到后面函数执行的结果,再此次return出来,后面函数接着返回,这就是调用_add,得到了这个this,然后返回到了调用的位置,即:translate中,然后在在外面调用translate的时候,返回得到的这个this。
这里因为是方法中嵌套方法,所以在返回值这里稍微有点绕,但是原理“调用函数,得到的是函数的返回值”,这个是不变的,可以根据这里,在看下代码哦。
如果帮助到了你,欢迎采纳,祝学习愉快~
相似问题