2010-05-29 17 views
12

जावास्क्रिप्ट में, जब आप किसी ऑब्जेक्ट की प्रॉपर्टी प्राप्त करते हैं, तो क्या ऑब्जेक्ट को केवल उस ऑब्जेक्ट की प्रॉपर्टी प्राप्त करने के लिए एक प्रदर्शन दंड होता है?जावास्क्रिप्ट ऑब्जेक्ट एक्सेस प्रदर्शन

यह भी ध्यान रखें कि मैं डोम एक्सेस के बारे में बात नहीं कर रहा हूं ये शुद्ध सरल जावास्क्रिप्ट ऑब्जेक्ट्स हैं।

उदाहरण के लिए:

ग्रहण तेजी से लेकिन यकीन नहीं होने के लिए:

var length = some.object[key].length; 

if(length === condition){ 
    // Do something that doesnt need anything inside of some.object[key] 
} 
else{ 
    var object = some.object[key]; 
    // Do something that requires stuff inside of some.object[key] 
} 

मुझे लगता है कि यह धीमी लेकिन नहीं होगा

वहाँ निम्नलिखित कोड के प्रदर्शन के बीच अंतर के कुछ प्रकार है यकीन है कि यह मायने रखता है।

var object = some.object[key]; 

if(object.length === condition){ 
    // Do something that doesnt need anything inside of some.object[key] 
} 
else{ 
    // Do something that requires stuff inside of some.object[key] 
} 

उत्तर

15

हां, प्रदर्शन प्रदर्शन जुर्माना है।

अधिक गहरी संपत्ति है, संपत्ति की तलाश करने के लिए अधिक समय की आवश्यकता होगी।

पेज 3112 में High Performance JavaScript पुस्तक के free chapter को चेक करें, यह विशेष रूप से नेस्टेड सदस्यों के बारे में बात करता है।

(पहुँच समय संपत्ति गहराई से संबंधित)

भी देखें इस प्रदर्शन परीक्षण:

+1

लिंक मर चुका है और इसे और अधिक हाल के साथ अद्यतन किया जा सकता है ब्राउज़रों? – caub

+0

इस लिंक को काम करना चाहिए। https://www.nczonline.net/experiments/javascript/performance/data-access.html – kimsk

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