2016-05-12 4 views
0

ist Teil einer Lernübung und ich mag falsch unten ist ein Prototyp für functionsX mit dem String-Wert von „namen“ und der Code erstellen ..einen Objekt Funktionsprototyp und Code-Erstellung ist falsch

function creatingFunctions(functionsX){ 

    functionsX.number=200; 
} 

functionsX.prototype.propName=function(){ 
    return "name"; 
    }; 
+1

Na ja, du hast Recht, dass es falsch ist. Sie haben jedoch nicht erklärt, was die Absicht des Codes sein sollte. Bitte werfen Sie einen Blick auf [fragen] und wie man ein [mcve] erstellt. –

+0

die intention ist, dass jede funktionenX hat die property propName das ist wert ist eine funktion, die die string "name" -so ich erstelle einen prototyp – learningcoding

+0

vielleicht eine variable an erster stelle würde helfen würde ... – SparK

Antwort

0

Das Deklarieren einer Eigenschaft im Prototypobjekt einer Funktion sollte im selben Umfang erfolgen, in dem sie verfügbar ist.

function creatingFunctions(functionsX) { // Assuming functionsX is a function object. 

    functionsX.number=200; 
    functionsX.prototype.propName = function() { 
    return "name"; 
    } 

} 

Verbrauch:

function foo() {}; 
creatingFunctions(foo); 
foo.propName(); // returns "name"; 

Statt alles zu tun, Sie auf diese Weise gegangen sein könnte:

function Foo() { 
    this.number = 200; 
} 

Foo.prototype.propName = function() { 
    return "name"; 
} 

// Usage would be: 

var foo = new Foo(); 
foo.number // 200 
foo.propName() // "name" 
+0

Wahrscheinlich meinten Sie '(new foo) .propName();' in Ihrem ersten Verwendungsschnipsel – Bergi

Verwandte Themen