什么是;把这个退回来;在javascript函数中执行什么操作?

什么是;把这个退回来;在javascript函数中执行什么操作?,javascript,Javascript,我想知道,“returnthis”在javascript函数中做什么,它的用途是什么? 假设我们有以下代码: Function.prototype.method = function (name, func) { this.prototype[name] = func; return this; }; “returnthis”在函数内部做什么 我知道上面的代码是做什么的,以及“this”关键字的用法。我只是不知道“returnthis”在函数内部做什么;dr从方法返回此是允许将方法“链

我想知道,“returnthis”在javascript函数中做什么,它的用途是什么? 假设我们有以下代码:

Function.prototype.method = function (name, func) {
  this.prototype[name] = func;
  return this;
};
“returnthis”在函数内部做什么


我知道上面的代码是做什么的,以及“this”关键字的用法。我只是不知道“returnthis”在函数内部做什么;dr从方法返回
是允许将方法“链接”在一起的常见方法


引用当前上下文,并根据调用函数的方式更改含义

对于函数调用,
引用全局对象,即使函数是从方法调用的,并且函数与调用它的方法属于同一类。道格拉斯·克罗克福德(Douglas Crockford)将此描述为“语言设计中的错误”[Crockford 28]

对于方法调用,
引用 方法正在被调用

使用apply调用时,
引用调用apply时将其设置为的任何值

通过构造函数调用,
引用 在幕后为您创建,当 构造函数退出(前提是您不会错误地从构造函数返回自己的对象)

在上面的示例中,您正在创建一个名为
method
的新方法,该方法允许您动态添加函数,并返回
this
,从而允许链接

所以你可以这样做:

Car.method("vroom", function(){ alert("vroom"); })
   .method("errrk", function() { alert("errrk"); });

依此类推。

它指的是当前正在调用该方法的对象实例。它是用来锁链的。例如,您可以这样做:

myObject.foo().bar();
由于
foo
返回
this
(对
myObject
的引用),因此对象上也将调用
bar
。这和做同样的事情

myObject.foo();
myObject.bar();
但是需要更少的打字

下面是一个更完整的示例:

function AnimalSounds() {}

AnimalSounds.prototype.cow = function() {
    alert("moo");
    return this;
}

AnimalSounds.prototype.pig = function() {
    alert("oink");
    return this;
}

AnimalSounds.prototype.dog = function() {
    alert("woof");
    return this;
}

var sounds = new AnimalSounds();

sounds.cow();
sounds.pig();
sounds.dog();

sounds.cow().pig().dog();

它返回this,通常指调用它的html元素,但“this”可以有多种含义
这意味着该方法将返回它所属的对象。如果您希望像这样链接指令,这可能很有用:

MyObject.method1().method2().method3();
现实世界的例子:jQuery

$(this).addClass('myClass').hide();

@user722756:因为
方法
被添加到
函数。原型
将引用调用
方法
的函数。该函数可能被用作“构造函数”,因为
method
正在扩展函数的
prototype
对象。我知道“this”关键字的用法,但我不知道“returnthis”在函数内部的用法。
returnthis
用于创建。请看下面由@marcioAlmada和@AdamRackis发布的答案。我猜你不明白我的问题。我知道上面的代码是做什么的,只是不知道“returnthis”是做什么的。既然扩展了
原型
,为什么不使用实际的代码来说明可能的重复呢<代码>动物声音。方法('cow',func…)。方法('pig',func…)。方法('dog',func…)