What does “return this” do within a javascript function?

前端 未结 4 2064
遥遥无期
遥遥无期 2020-11-27 02:46

i wonder, what does \"return this\" do within a javascript function, what\'s its purpose? supposing we have the following code:

Function.prototype.method = f         


        
4条回答
  •  北海茫月
    2020-11-27 03:14

    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/

提交回复
热议问题