Ich habe ein benutzerdefiniertes Javascript-Objekt, das ich mit new
und ordnen Sie Eigenschaften auf der Grundlage von Erstellungsargumenten zu:
function MyObject(argument) {
if (argument) {
this.prop = "foo";
}
}
var objWithProp = new MyObject(true); // objWithProp.prop exists
var objWithoutProp = new MyObject(false); // objWithoutProp.prop does not exist
Wie testet man richtig auf das Vorhandensein der prop
Eigenschaft der Objekte? Ich habe gesehen, die folgenden Möglichkeiten verwendet, aber ich bin nicht sicher, ob eine dieser Möglichkeiten ist der beste Weg:
if (obj.prop) {}
if (obj.hasOwnProperty("prop")) {}
if ("prop" in obj) {}
Insbesondere bin ich nur daran interessiert, zu testen, ob die Eigenschaft explizit für dieses Objekt definiert ist, nicht in der Prototypenkette. Darüber hinaus wird der Wert niemals auf null
o undefined
aber es könnte sich auch um ein leeres Objekt oder Array handeln. Allerdings, wenn Sie, was der richtige Weg ist, wenn diese der Fall sein könnte, fühlen sich frei zu enthalten.