की 'छुपी कक्षाओं' अवधारणा को साफ़ करना मैंने वी 8 के छिपा वर्गों के बारे में कुछ लेख पढ़े हैं।वी 8
हैं, तो मान लें, वहाँ दो वस्तुओं रहे हैं: हालांकि, मैं अभी भी मेरे सिर में कुछ प्रश्न हैं
var a = { }
a.x = 5
a.y = 6
var b = { }
b.y = 7
b.x = 8
वे एक ही छिपा वर्ग के साथ अंत या अलग सिर्फ इसलिए कि एक 0 + x + y
चला गया है और अन्य 0 + y + x
? जैसा कि मैंने समझा, उन्हें अलग-अलग वर्ग मिलते हैं लेकिन सिर्फ यह सुनिश्चित करना चाहते हैं कि मुझे यह मिल गया।
function Point(x, y) {
this.x = x
this.y = y
}
var a = new Point(7, 8)
var b = { }
b.x = 6
b.y = 8
var c = {
x: 8,
y: 9
}
var d = {
y: 9,
x: 80
}
हम एक ही छिपा वर्ग के साथ खत्म करें:
फिर, हम इस मामले है? मुझे लगता है कि a
, b
और c
करें लेकिन d
नहीं है। जब तक इस ऑब्जेक्ट एक्सप्रेशन पर कुछ सॉर्टिंग नहीं किया जाता है (इसी प्रकार सरणी की छोटी घोषणा प्रकार के लिए विश्लेषण की जा रही है)।
function PointA(x, y) {
this.x = x
this.y = y
}
var a = new PointA(7, 8)
function PointB(x, y) {
this.x = x
this.y = y
}
var b = new PointB(7, 8)
यह sorta दूसरे मामले के समान है:
अंत में, हम इस किया है। ये वस्तुएं समान दिखाई देती हैं सिवाय इसके कि उनकी उत्पत्ति (instanceof...
) अलग है। हालांकि, क्या वही छुपे हुए वर्ग के साथ वस्तुएं समाप्त होती हैं?
जावास्क्रिप्ट में कक्षाएं नहीं हैं। छुपे हुए वर्ग अवधारणा नहीं हैं, वे कार्यान्वयन के आंतरिक विवरण हैं। जब तक आप v8 या अन्य वर्चुअल मशीन को हैक करना नहीं चाहते हैं, जिसे समान समस्या हल करने की आवश्यकता है, तो आपको परवाह नहीं है। –
मुझे वास्तव में मेरे द्वारा लिखे गए कोड के प्रदर्शन की परवाह है। मैंने अपने आप का अनुभव किया है कि प्रदर्शन के बारे में परवाह करना आसान है * जैसा कि आप जाते हैं * इसके बारे में देखभाल करने के बजाए जब कोई शिकायत करता है कि यह बहुत धीरे-धीरे चलता है। – Pijusn
प्रदर्शन के पहलू हैं जिन्हें आपको वास्तव में देखभाल करने की आवश्यकता है। इष्टतम एल्गोरिदम चुनने की तरह, कैशिंग डेटा जिसे आपको अक्सर और ऐसे की आवश्यकता होती है। लेकिन अगर आपको वास्तव में इस स्तर पर प्रदर्शन की परवाह करने की ज़रूरत है, तो आपको शायद पहले स्थान पर जावास्क्रिप्ट का उपयोग नहीं करना चाहिए। –