我对js比较陌生,基本上我在transit.js(一个小型动画库)中遇到了以下函数。看一下下面的函数:
function Transform(str) {
if (typeof str === 'string') { this.parse(str); }
return this;
}
现在 this.parse(str)
基本上是调用一个附加到 Transform
原型(prototype)上的函数,你可以在 LINE 422 上看到该函数.
现在我的问题是关于this
,我在线阅读了几篇文章,其中展示了如何将 return this 用于链接,但我不太确定在这种情况下 return this 是什么返回。
当您在这个特定场景中说return this
时,您具体指的是返回什么?到底是什么。
我有点理解返回这个工作有点像这样:
- 将对象、变量或其他内容传递给函数
- 函数执行步骤
- 使用
return this
返回新对象或变量。
但是我仍然不清楚,有人可以通过举我的例子并使用示例上下文进行解释来让我清楚地了解这一点吗?
附注我不是要求解释 return this,而是要求在给定的上下文中解释 return this。
最佳答案
this.parse(str)
很可能会改变对象并返回现在改变的结果。正如您所说,这对于 chaining function calls 很有用。像这样:
var obj = Transform('some string').someOtherFunction();
someOtherFunc
可以在 prototype chain 中的某个位置定义,或者使用某种 inheritance strategy ,它可能是另一个“父”对象的继承或扩展函数。要点是,当调用 someOtherFunc
时,它是在已被 Transform
函数更改的对象上调用的。
关于javascript - 理解transit.js中简单的return this,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30840755/