Object(obj) === obj
Tests hilft, ob obj
ist ein Objekt oder eine primitive, in Ermangelung einer auch für Streicher usw.
console.log(Object('foo') === 'foo'); // false
console.log(Object(true) === true); // false
console.log(Object(null) === null); // false
var obj = {};
console.log(Object(obj) === obj); // true
Es ist nützlich für die Bestimmung Wenn der Wert angegeben werden kann und merken Sie sich eine zugewiesene Eigenschaft.
Während null
und undefined
geradezu Fehler, wenn Eigenschaften zu verwenden versuchen, weshalb obj != null
immer noch nützlich ist, no primitive values are able to hold onto properties.
var pri = 'foo';
pri.foo = 'bar'; // no error, but still...
console.log(pri.foo); // undefined
var box = Object(pri);
box.foo = 'bar';
console.log(box.foo); // 'bar'
Referenz:
Wenn obj
null
oder undefined
ist, Object(obj)
returns a new Object()
:
1) Wenn Wertnull
ist, undefined
oder nicht geliefert wird, und eine neue Rück Object-Objekt genau so, als ob der standardmäßige integrierte Object-Konstruktor ha d wurde mit den gleichen Argumenten aufgerufen (15.2.2.1).
Und primitive booleans, Strings und Zahlen in ihre Objekttypen über ToObject()
sind eingerahmt, die ihre primitive Mittel nicht gleich sind:
2) Zurück ToObject (Wert).
console.log(typeof 'foo' === 'string'); // true
console.log(typeof Object('foo') === 'object'); // true
console.log('foo' instanceof String); // false
console.log(Object('foo') instanceof String); // true
Das Ergebnis ist nicht wirklich das gleiche. Nehmen Sie zum Beispiel ein Primitiv für Strings oder Zahlen: Es ist! = Null, aber sein Gegenstück zum Objekt ist nicht === das Primitivformular. –