मैं यह जांचना चाहता हूं कि कोई ऑब्जेक्ट खाली है या नहीं: {}
। निम्नलिखित आम तौर पर प्रयोग किया जाता है:ऑब्जेक्ट.प्रोटोटाइप संशोधित किए जाने पर ऑब्जेक्ट "isEmpty()" ऑब्जेक्ट का परीक्षण कैसे करें?
function isEmpty(obj) {
for (var prop in obj) {
if (obj.hasOwnProperty(prop))
return false;
}
return true;
}
लेकिन लगता है Object
प्रोटोटाइप के रूप में इस के लिए जोड़ा गया:
Object.prototype.Foo = "bar";
टेस्ट:
alert(isEmpty({})); // true
Object.prototype.Foo = "bar";
alert({}.Foo); // "bar" oh no...
alert(isEmpty({})); // true ...**huh?!**
मैं वस्तु के प्रोटोटाइप परमाणु करने की कोशिश की, बदल यह है कन्स्ट्रक्टर, और इस तरह के हैक के सभी तरीके। कुछ भी काम नहीं किया, लेकिन शायद मैंने यह गलत (संभावित) किया था।
असल में मुझे एहसास हुआ कि यह प्रश्न शायद गलत तरीके से phrased है, यह शायद होना चाहिए: _ "कैसे जांचें कि एक प्रोटोटाइप श्रृंखला बदल दी गई है" _? –
... और एकमात्र तरीका मैं सोच सकता हूं कि "ऑब्जेक्ट", "संख्या", "ऐरे" आदि के लिए प्रत्येक संपत्ति को हार्डकोड करना है, और जांचें कि ज्ञात गुणों के बाहर कुछ भी नहीं है। काफी गन्दा हालांकि मैं यह देखने के लिए एक यूनिट टेस्ट में ऐसा करना चाहता हूं कि कोई भी आदिम प्रकारों में कुछ नहीं फंसता, जिसे मैं हमेशा संदेह करता हूं (क्योंकि यह मेरे कोड को डाउनस्ट्रीम को उड़ा सकता है और मैं समस्या का पता लगाने के लिए संघर्ष करता हूं) । –
इसे पढ़ें: http://www.3site.eu/doc/ – diEcho