oop - How to determine if an object is an object literal in Javascript? -
क्या जावास्क्रिप्ट में किसी ऑब्जेक्ट को नोटेशन का उपयोग करके या कन्स्ट्रक्टर विधि का उपयोग कर बनाया गया है?
< पी> मुझे लगता है कि आप अपनी अभिभावक वस्तु का सिर्फ उपयोग करते हैं, लेकिन अगर जिस ऑब्जेक्ट में आप गुजर रहे हैं उसके पास उसके माता-पिता का कोई संदर्भ नहीं है, मुझे नहीं लगता कि आप यह बता सकते हैं, क्या आप कर सकते हैं? < मैं इस प्रश्न और धागे में एक मिठाई हैकफ़ेस्ट के दौरान आया था जिसमें मूल्यांकन के लिए एक ग्रिल खोज शामिल था कि क्या वस्तु वस्तु के साथ बनाया गया था {{div class = "text">
वैसे भी, मुझे थिंक IObjectLiteral () फ़ंक्शन के बीच यहां समानता प्राप्त करने के लिए और मेरे स्वयं के ओबज लिटरल () फ़ंक्शन के लिए लिखा था जो मैंने लिखा था पराग। जेएस परियोजना मेरा मानना है कि यह समाधान मेरे परागण से पहले पोस्ट किया गया था। जे एस प्रतिबद्ध, इसलिए - आपके लिए टोपी! मेरा उल्टा लंबाई है ... कम तब तक आधा (जब आपका सेट अप नियत किया गया), लेकिन दोनों एक ही परिणाम उत्पन्न करते हैं।
एक नज़र रखना:
फ़ंक्शन isObjLiteral ( _obj) {var _test = _obj; वापसी (टाइपफ _obj! == 'ऑब्जेक्ट' || _obj === रिक्त? झूठा: ((फ़ंक्शन () {जबकि (! गलत) {यदि (ऑब्जेक्ट .get प्रोटोटाइपऑफ़ (_test = Object.getPrototypeOf (_test)) === नल) {ब्रेक;}} रिटर्न ऑब्जेक्ट .get प्रोटोटाइपऑफ़ (_obj) === _test;}) ())); }
इसके अतिरिक्त, कुछ परीक्षण सामग्री:
var _cases = {_objLit: {}, _obj नया: नया ऑब्जेक्ट (), _ फ़ंक्शन: नया फ़ंक्शन (), _अरे: नया अर्रे () , _स्ट्रिंग: नई स्ट्रिंग (), _image: नई छवि (), _bool: true}; console.dir (_cases); (_cases में var _test) के लिए {console.group (_test); कंसोल। डाइर ({प्रकार: टाइपफ _cases [_test], स्ट्रिंग: _cases [_test] .toString (), परिणाम: isObjLiteral (_cases [_test])}); console.groupEnd (); }
या jsbin.com पर ...
जब आप वहां जाते हैं तो फायरबग खोलना सुनिश्चित करें - दस्तावेज़ में डिबगिंग आईई प्रेमियों के लिए है। < / P>
Comments
Post a Comment