2016-04-15 19 views
1

Ich habe eine JavaScript-Klasse, die ein Objekt an es übergeben wird, das Objekt ist anonym und ändert sich. Ich möchte überprüfen, ob innerhalb der Eigenschaften dieses Objekts ein übereinstimmender Methodenname innerhalb dieser Klasse existiert.Überprüfen Sie, ob Javascript bestimmte Methode enthält

Hier Code machen klar:

var Panel = function(obj) { 
 
    for (var prop in obj) { 
 
    if (typeOf this[prop] == function) { // ?? please help with this check 
 
     this[prop](obj[prop]); // call this method with right argument in this case will be this.maxWidth("400px") 
 
    } 
 
    } 
 

 
    this.maxWidth = function(max_width) { 
 
    document.getElementById(obj["id"]).style.maxWidth = max_width; 
 
    } 
 
} 
 

 

 
var myObj = { 
 
    "maxWidth": "400px" 
 
} 
 

 
var p = new Panel(myObj);

+3

Machen Sie es "Funktion" '. 'typeof' (Kleinbuchstaben!) gibt eine Zeichenkette zurück. – Bergi

+0

so ... nach dem obigen Kommentar ist dein Problem .... –

+0

@Bergi ich bekomme diese Lösung nicht. Kannst du bitte Erklären? –

Antwort

1

Hier ist der korrigierte Code, müssen Sie typeof nicht typeOf und function Bedürfnisse verwenden, in Anführungszeichen gesetzt werden, wie typeof ein zurück string:

var Panel = function(obj) { 
    for (var prop in obj) { 
    if (typeof this[prop] == 'function') { // ?? please help with this check 
     this[prop](obj[prop]); // call this method with right argument in this case will be this.maxWidth("400px") 
    } 
    } 

    this.maxWidth = function(max_width) { 
    document.getElementById(obj.id).style.maxWidth = max_width; 
    }; 
}; 


var myObj = { 
    "maxWidth": "400px" 
}; 

var p = new Panel(myObj); 

https://jsbin.com/yemoki/1/edit?js,console

+1

du hast recht. Dieser Code funktioniert auch, nachdem Sie den oben genannten Vorschlag gemacht haben, indem Sie die Methode oberhalb des Aufrufs hinzufügen. Hier ist ein Link für den Code nach den vorgeschlagenen Änderungen. Danke allen! https://jsfiddle.net/joeSaad/yavw0uo1/ –

Verwandte Themen