2016-05-05 6 views
0

Ich versuche Rückkehr bin eine Instanz in einer Funktion in javscript hinzuzufügen, wo ich das folgende Verhaltenein Objekt aus einer Javascript-Funktion

function Calculator() { 
    this.mm = 66; 
    return 2 ; 
} 

var calculator = new Calculator(); 
console.log(' --> '+calculator.mm); <<< gives output of 66 

aber den Code unten

function Calculator() { 
    this.mm = 66; 
    return {} ; 
} 

var calculator = new Calculator(); 
console.log(' --> '+calculator.mm); <<< gives me undefined 

Ich will beobachtet haben, nur zu wissen, was anders ist, wenn man ein Objekt von einem primitiven Datentyp zu einer Funktion zurückführt. Mit anderen Worten, warum werde ich hier undefiniert hier und nicht 66.

+0

Warum kommen Sie von diesem Muster zurück? – epascarello

+5

http://www.bennadel.com/blog/2522-providing-a-return-value-in-a-javascript-constructor.htm – demo

+0

Sie geben ein leeres Objekt zurück, das keine Eigenschaft von mm hat. Gib 'das' stattdessen zurück. – NOBrien

Antwort

-2

sollten Sie die Variable mm in der zweiten zurückgeben. Wie Rückkehr mm; Das sollte dein Problem lösen. Da Sie nichts in der zweiten zurückgeben, kommt es deshalb als undefiniert zurück.

+0

Funktion Rechner() { this.mm = 66; Rückgabe {k: 'aaa'}; } selbst das gibt mir undefiniert beim Zugriff auf 'mm' – jayanthCoder

+0

warum machst du das? Komm einfach zurück mm; - Das ist alles, was Sie tun müssen. –

Verwandte Themen