Wie überprüft man, ob das anonyme Objekt eine Methode hat?
Wie kann ich überprüfen, ob ein anonymes Objekt, das erstellt wurde als solche:
var myObj = {
prop1: 'no',
prop2: function () { return false; }
}
muss in der Tat eine prop2 definiert?
prop2
wird immer als eine Funktion definiert werden, aber für einige Objekte ist es nicht erforderlich und auch nicht definiert werden.
Ich habe versucht, was vorgeschlagen wurde hier: Wie, um festzustellen, ob die Native JavaScript-Objekt eine Eigenschaft/Methode? aber ich glaube nicht, dass es für anonyme Objekte .
InformationsquelleAutor der Frage Omar | 2010-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
typeof myObj.prop2 === 'function';
wird Sie wissen lassen, wenn die Funktion definiert ist.InformationsquelleAutor der Antwort Sean Vieira
Du willst
hasOwnProperty()
:Referenzen: MozillaMicrosoftphrogz.net.
InformationsquelleAutor der Antwort artlung
Was meinst du mit ein "anonymes Objekt?"
myObj
ist nicht anonym, da Sie zugewiesen haben, eine Objekt-Literals zu einer variable. Sie können einfach testen:InformationsquelleAutor der Antwort Matt Ball
3 Optionen
typeof myObj.prop2 === 'function'
wenn der name der Eigenschaft ist nicht dynamisch/generiertemyObj.hasOwnProperty('prop2')
wenn der name der Eigenschaft ist dynamisch, und nur prüfen, ob es direkte Eigenschaft (nicht die Prototyp-Kette)'prop2' in myObj
wenn der name der Eigenschaft ist dynamisch, und überprüfen Sie unten die Prototyp-KetteInformationsquelleAutor der Antwort Peter Tseng
Einen Weg, es zu tun müssen
if (typeof myObj.prop1 != "undefined") {...}
InformationsquelleAutor der Antwort Ain Tohvri