Wie funktioniert die grundlegende Verkettung von Objekten / Funktionen in Javascript?

Ich versuche, die Prinzipien der Verkettung von Funktionen im Stil von jQuery direkt in meinen Kopf zu bekommen. Damit meine ich:

var e = f1('test').f2().f3();

Ich habe ein Beispiel arbeiten lassen, während ein anderes nicht funktioniert. Ich werde die unten posten. Ich möchte immer die ersten grundlegenden Grundlagen der Funktionsweise von etwas lernen, damit ich darauf aufbauen kann. Bisher hatte ich nur ein flüchtiges und loses Verständnis dafür, wie Verketten funktioniert, und stoße auf Fehler, die ich nicht intelligent beheben kann.

Was ich weiß:

Funktionen müssen sich selbst zurückgeben, auch bekannt als "return this".Verkettbare Funktionen müssen sich in einer übergeordneten Funktion befinden, auch bekannt als in jQuery. Css () ist eine Untermethode von jQuery (), daher jQuery (). Css ();Die übergeordnete Funktion sollte sich selbst oder eine neue Instanz von sich selbst zurückgeben.

Dieses Beispiel hat funktioniert:

var one = function(num){
    this.oldnum = num;

    this.add = function(){
        this.oldnum++;
        return this;
    }

    if(this instanceof one){
        return this.one;    
    }else{
        return new one(num);    
    }
}
var test = one(1).add().add();

Aber das tut man nicht:

var gmap = function(){

    this.add = function(){
        alert('add');

        return this;    
    }   

    if(this instanceof gmap) {
        return this.gmap;   
    } else{
        return new gmap();  
    }

}
var test = gmap.add();

Antworten auf die Frage(5)

Ihre Antwort auf die Frage