首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在transit.js中理解简单的返回

在transit.js中理解简单的返回
EN

Stack Overflow用户
提问于 2015-06-15 08:39:39
回答 2查看 65关注 0票数 2

我对js比较陌生,基本上在transit.js中看到了以下函数,这是一个小型动画库。请看下面的功能:

代码语言:javascript
复制
function Transform(str) {
    if (typeof str === 'string') { this.parse(str); }
    return this;
  }

现在this.parse(str),基本上是调用一个附加到Transform原型的函数,您可以在第422行上看到这个函数。

现在我的问题是关于this的,我在网上读了几篇文章,这些文章展示了如何将它用于链接,但是在这个例子中,我不太确定返回的是什么。

当您在这个特定场景中说return this时,您具体指的是什么?到底是什么。

我有点理解这种工作方式是这样的:

  • 将对象、变量或其他东西传递给函数。
  • 函数执行以下步骤
  • 使用return this返回新对象或变量。

但我还是不太清楚,有人能不能用我的例子,用例子的上下文来解释清楚呢?

我不是要求解释返回,而是要求在给定的上下文中解释返回。

EN

回答 2

Stack Overflow用户

发布于 2015-06-15 08:46:12

this.parse(str)很可能会变异对象并返回现在发生变异的结果。就像您说的,这对于像这样的链接函数调用是有用的:

代码语言:javascript
复制
var obj = Transform('some string').someOtherFunction();

someOtherFunc可以在原型链中的某个地方定义,或者通过使用某种继承策略,它可能是另一个“父”对象的继承函数或扩展函数。要点是,当调用someOtherFunc时,对已经被Transform函数更改的对象调用它。

票数 3
EN

Stack Overflow用户

发布于 2015-06-15 09:14:25

在该上下文中的转换是一个可以实例化的对象。一旦实例化,它就有自己的属性和生命周期。这就是javascript在声明过程中使用单词function不清楚的地方。(ES6带来了许多与这种使用相关的更好的解决方案)。

代码语言:javascript
复制
var transform1 = new Transform("transform1");
var transform2 = new Transform("transform2");

现在可以单独使用transform1和transform2来调用Transform对象的所有子方法。

Transform函数可以看作是一个“构造函数”(尽管它不是javascript中使用类的正式方法)。如果没有return this,transform1和transform2将是未知的。在这里,它更多地用于保存新创建的对象的引用,而不是真正的链接,而真正的链接更多地用于执行以下操作的子方法:

代码语言:javascript
复制
transform1.submethod1().submethod2();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30840755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档