Object(obj) === obj
kiểm tra liệu obj
là một đối tượng hoặc một nguyên thủy, cũng không cho chuỗi vv
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
Nó rất hữu ích để xác định nếu giá trị có thể được cung cấp và nhớ thuộc tính được chỉ định.
Trong khi null
và undefined
lỗi hoàn toàn khi cố gắng sử dụng thuộc tính, đó là lý do tại sao obj != null
vẫn hữu ích, 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'
tham khảo:
Khi obj
là null
hoặc undefined
, Object(obj)
returns a new Object()
:
1) Nếu giá trị là null
, undefined
hoặc không được cung cấp, tạo và trả về một mới Đối tượng đối tượng chính xác như là tiêu chuẩn xây dựng trong Object constructor ha d được gọi với cùng một đối số (15.2.2.1).
Và, nguyên thủy dữ liệu boolean, chuỗi, và con số này được đóng hộp vào loại đối tượng của họ thông qua ToObject()
, mà không phải là tương đương với các khoản tương đương nguyên thủy của họ:
2) Return ToObject (giá trị).
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
Nguồn
2014-06-27 21:28:00
Kết quả không thực sự giống nhau. Lấy ví dụ, một chuỗi hoặc số nguyên thủy: nó là! = Null nhưng đối tượng đóng hộp của nó không phải là === dạng nguyên thủy. –