JavaScript - Ermitteln Sie, ob eine Eigenschaft definiert und auf 'undefiniert' oder nicht definiert gesetzt ist

Sagen, ich habe den folgenden code:

function One() {}
One.prototype.x = undefined;

function Two() {}

var o = new One();
var t = new Two();

o.x und t.x wird bewertet, um undefined. o.hasOwnProperty('x') und t.hasOwnProperty('x') beide return false; das gleiche gilt für propertyIsEnumerable. Zwei Fragen:

  • Gibt es eine Möglichkeit zu sagen, dass o ist.x ist definiert und festgelegt undefined?
  • Gibt es überhaupt keinen Grund zu? (sollten die beiden semantisch äquivalent?)

Eine kleine Einschränkung: tun (für propName in o) - Schleife wird der Ertrag 'x' als eine der Zeichenfolgen, während es in t nicht - es gibt also einen Unterschied, wie Sie intern dargestellt werden (zumindest in Chrome).

InformationsquelleAutor der Frage Claudiu | 2008-12-22

Schreibe einen Kommentar