Heim  >  Artikel  >  Web-Frontend  >  Der Unterschied zwischen gewöhnlichen Javascript-Funktionen und Konstruktoren

Der Unterschied zwischen gewöhnlichen Javascript-Funktionen und Konstruktoren

高洛峰
高洛峰Original
2016-12-07 15:34:461278Durchsuche

Der Unterschied zwischen gewöhnlichen Funktionen und Konstruktoren

Was die Benennungsregeln angeht, schreiben Konstruktoren im Allgemeinen den ersten Buchstaben groß, während gewöhnliche Funktionen der Kamel-Fall-Benennungsmethode folgen.

Wenn die Funktion aufgerufen wird:

function fn() { }

Konstruktor: 1. new fn( )
2. Im Konstruktor wird ein neues Objekt erstellt, d. h. eine Instanz von f
                                                                    die aufrufende Funktion
3. Dies innerhalb der Funktion zeigt auf das Objekt der aufrufenden Funktion (wenn kein Objekt aufgerufen wird, ist es standardmäßig Fenster)
4. Der Rückgabewert wird durch die Return-Anweisung

bestimmt


Der Rückgabewert des Konstruktors:


Es gibt einen Standardrückgabewert, das neu erstellte Objekt ( Beispiel);

Wenn der Rückgabewert manuell hinzugefügt wird (Rückgabeanweisung). ):


1. Der Rückgabewert ist der Basisdatentyp -->Der eigentliche Rückgabewert ist immer noch das neu erstellte Objekt (Instanz)

2. Der Rückgabewert ist ein komplexer Datentyp Typ (Objekt)-->Der tatsächliche Rückgabewert ist dieses Objekt

Sehen Sie sich eine häufige Interviewfrage an



<script>
  function foo() {
    var f2 = new foo2();
    console.log(f2);  //{a: 3}
    console.log(this); //window
    return true;
  }
  function foo2() {
    console.log(this); //foo2类型的对象 不是foo2函数
//    this.age = 30;
    return {a: 3};
  }
  var f1 = foo();
  console.log(f1); // true
</script>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn