रिस्पांस (नहीं एक टिप्पणी क्योंकि कोड ब्लॉक टिप्पणी में समर्थित नहीं हैं) का उपयोग करें:
जैसा कि डैनियल ने बताया, यदि आपके उदाहरण में "ए" वस्तु पहले स्थान पर मौजूद नहीं है, तो "ए" पर "बी" तक पहुंचने का आपका प्रयास एक त्रुटि का कारण बन जाएगा। यह उन मामलों में होता है जहां आप एक गहरी संरचना की अपेक्षा कर रहे हैं, जैसे JSON ऑब्जेक्ट, उदाहरण के लिए, "content.social.avatar" प्रारूप हो सकता है। यदि "सामाजिक" मौजूद नहीं है, तो "content.social.avatar" तक पहुंचने का प्रयास करने से त्रुटि हो जाएगी।
// Missing property "c". This is the "invalid data" case.
var test1:Object = { a:{b:"hello"}};
// Has property "c". This is the "valid data" case.
var test2:Object = { a:{b:{c:"world"}}};
अब:
यहाँ जहां "अनिर्धारित" दृष्टिकोण मामलों में त्रुटि हो सकती है, जहां "hasOwnProperty()" दृष्टिकोण नहीं है एक गहरे संरचना संपत्ति-अस्तित्व परीक्षण की एक सामान्य दर-मामला उदाहरण है परीक्षण ...
// ** Error ** (Because "b" is a String, not a dynamic
// object, so ActionScript's type checker generates an error.)
trace(test1.a.b.c);
// Outputs: world
trace(test2.a.b.c);
// ** Error **. (Because although "b" exists, there's no "c" in "b".)
trace(test1.a && test1.a.b && test1.a.b.c);
// Outputs: world
trace(test2.a && test2.a.b && test2.a.b.c);
// Outputs: false. (Notice, no error here. Compare with the previous
// misguided existence-test attempt, which generated an error.)
trace(test1.hasOwnProperty("a") && test1.a.hasOwnProperty("b") && test1.a.b.hasOwnProperty("c"));
// Outputs: true
trace(test2.hasOwnProperty("a") && test2.a.hasOwnProperty("b") && test2.a.b.hasOwnProperty("c"));
ध्यान दें कि एक्शनस्क्रिप्ट की भाई भाषा जावास्क्रिप्ट test1 उदाहरण में कोई त्रुटि उत्पन्न नहीं करेगा। हालांकि, यदि आप ऑब्जेक्ट पदानुक्रम को एक और स्तर तक बढ़ाते हैं, तो आप जावास्क्रिप्ट में भी त्रुटियों में टक्कर लेंगे:
// ** Error (even in JavaScript) ** because "c" doesn't even exist, so
// test1.a.b.c.d becomes an attempt to access a property on undefined,
// which always yields an error.
alert(test1.a.b.c.d)
// JavaScript: Uncaught TypeError: Cannot read property 'd' of undefined
स्रोत
2015-12-06 19:41:31
यह त्रुटियों का कारण बन सकता है यदि यह पहले स्थान पर मौजूद नहीं है। यदि आप 'var "में एक [" b "] ढूंढने की तरह गतिशील रूप से ऑब्जेक्ट बना रहे हैं, तो आपको त्रुटि दिखाई देगी: ऑब्जेक्ट = {ए:' 1 '}' – Daniel
(यह काम नहीं कर रहा है) – Lego
var a; ए = ए {ए: 1}; ट्रेस (एक ["बी"]), आउटपुट "अपरिभाषित" है, लेकिन कोई त्रुटि उत्पन्न नहीं करता है। तो, इस तरह से उपयोग करने में समस्या कहां है? –