It refers to the object instance on which the method is currently being called. It's used for chaining. For example, you could do something like this:
myObject.foo().bar();
Since foo
returns this
(a reference to myObject
), bar
will be called on the object too. This is the same thing as doing
myObject.foo();
myObject.bar();
But requires less typing.
Here is a more complete example:
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();
http://jsfiddle.net/jUfdr/
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…