Object(obj) === obj
परीक्षण obj
एक वस्तु या एक आदिम, तार के लिए भी नाकाम रहने के है या नहीं, आदि
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
यह निर्धारित करने के लिए उपयोगी है यदि मूल्य दिया जा सकता है और एक निर्दिष्ट संपत्ति याद रखें।
जबकि null
और undefined
एकमुश्त त्रुटि,, गुणों का उपयोग करने के लिए है, जिसके कारण obj != null
अभी भी उपयोगी है 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'
संदर्भ:
जब obj
null
या undefined
, Object(obj)
returns a new Object()
है:
1) यदि मूल्यnull
, undefined
या आपूर्ति नहीं की है, बना सकते हैं और एक नया वापसी ऑब्जेक्ट ऑब्जेक्ट बिल्कुल वैसा ही है जैसे मानक निर्मित ऑब्जेक्ट कन्स्ट्रक्टर हा डी को एक ही तर्क के साथ बुलाया गया था (15.2.2.1)।
और, आदिम बूलियन्स, स्ट्रिंग्स और संख्या ToObject()
के माध्यम से अपने वस्तु प्रकार हैं, जिनमें उनके आदिम समकक्ष के बराबर नहीं हैं में बॉक्सिंग कर रहे हैं:
2) लौटें ToObject (मूल्य)।
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
स्रोत
2014-06-27 21:28:00
परिणाम वास्तव में समान नहीं है। उदाहरण के लिए, एक स्ट्रिंग या संख्या आदिम ले लो: यह है! = शून्य लेकिन इसकी ऑब्जेक्ट बॉक्सिंग समकक्ष === आदिम रूप नहीं है। –