Object(obj) === obj
testy czy obj
jest obiektem lub prymitywne, w przeciwnym razie również ciągów itd
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
Jest to przydatne do określenia jeśli wartość można podać i zapamiętać przypisaną właściwość.
Podczas null
i undefined
wprost błąd podczas próby wykorzystywać właściwości, dlatego obj != null
jest nadal przydatny, 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'
referencyjny:
Kiedy obj
jest null
lub undefined
, Object(obj)
returns a new Object()
:
1) Jeśli wartość jest null
, undefined
lub nie podasz, tworzyć i powrócić nowa Obiekt obiektu jest dokładnie taki, jak standardowy wbudowany konstruktor obiektu ha d został wywołany z tymi samymi argumentami (15.2.2.1).
A pierwotne logicznych, łańcuchy i liczby są zapakowane do ich rodzajów przedmiotów poprzez ToObject()
, które nie są równe ich pierwotnych równoważników:
2) Powrót ToObject (wartość).
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
Wynik nie jest taki sam. Weźmy na przykład prymityw lub string: jest! = Null, ale jego odpowiednik w pudełku nie jest === prymitywną formą. –