2013-08-30 7 views
5

मैं Object.defineProperty और enumerable: false का इस्तेमाल किया है एक config वस्तु पर कुछ गुण को परिभाषित करने के। हालांकि मेरे मॉड्यूल में एक जगह है जहां मैं गैर-संख्यात्मक गुणों के साथ-साथ समरूप लोगों को फिर से शुरू करना चाहता हूं। क्या कहीं और संपत्ति नामों की सूची रखने के बिना ऐसा करना संभव है?पुनरावृत्ति से अधिक गैर गणनीय गुण

उत्तर

8

मुझे लगता है कि आप getOwnPropertyNames का उपयोग कर सकते हैं जो गुण, संख्यात्मक या नहीं देता है।

डॉक्स से:

सभी गुण (गणनीय या नहीं) एक दिया वस्तु पर सीधे पाया की एक सरणी देता है।

+0

एक उदाहरण है जहाँ मैं अपनी परियोजना में इस की जरूरत: सभी गणित कार्यों/स्थिरांक के माध्यम से लूपिंग। var mathProps = Object.getOwnPropertyNames (Math); गणितप्रॉप तब ["ई", "एलएन 10", "एलएन 2" ....] –

+0

@ डैनियलहोर्ड हां, लेकिन इसमें 'toSource' भी शामिल है; जो आप शायद नहीं चाहते हैं। आम तौर पर, आपको परिणामों को फ़िल्टर करने की ज़रूरत होगी कि आप जो अपेक्षा करते हैं (या तो श्वेतसूची या ब्लैकलिस्ट के साथ), इसलिए यह संभवतः आत्मनिरीक्षण या क्रमबद्धता कोड में उपयोगी है, और ऐसी चीजें, जहां आप आवेदन कर रहे हैं एक सामान्य ऑपरेशन जो परवाह नहीं करता है कि कौन से गुण लौटाए जाते हैं (या किस वस्तु को पास किया जाता है), इसे केवल उन सभी की आवश्यकता है। – jpaugh

संबंधित मुद्दे