/ / जब मैं अपने कैनवास की वस्तुओं को इनिशियलाइज़ कर रहा हूँ तो संदर्भ संदर्भ रखना बेहतर है - जावास्क्रिप्ट, एचटीएमएल 5, एचटीएमएल 5-कैनवास

जब मैं अपने कैनवस ऑब्जेक्ट को इनिशियलाइज़ कर रहा हूँ, तो संदर्भ संदर्भ रखना बेहतर है

क्या संदर्भ संदर्भ रखना बेहतर है जब मैं अपने कैनवास ऑब्जेक्ट को इनिशियलाइज़ कर रहा हूँ।

var Obj1 =
{
Init: function(ctx)
{
this.Ctx = ctx;
},

Draw: function()
{
this.Ctx.drawImage(img, x, y, width, height);
}
};

या प्रत्येक कॉल का उपयोग करने के लिए संदर्भ पास करना बेहतर है?

var Obj2 =
{
Init: function()
{

},

Draw: function(ctx)
{
ctx.drawImage(img, x, y, width, height);
}
};

अग्रिम में धन्यवाद।

उत्तर:

उत्तर № 1 के लिए 1

यदि संदर्भ एक वैश्विक वैरिएबल है aइसे जावास्क्रिप्ट के रूप में एक्सेस करने के लिए छोटे समय का दंड इसे खोजने के लिए प्रोटोटाइप पेड़ को खोजना होगा। उस स्थिति में और यदि फ़ंक्शन इसे दो बार से अधिक उपयोग करता है तो इसे पास करने से प्रदर्शन में सुधार हो सकता है।

यदि आपके पास यह एक वस्तु की संपत्ति के रूप में है तो एक छोटा (बहुत छोटा) समय जुर्माना है यदि आप इसे पास करते हैं, तो इसके माध्यम से उपयोग करने के बजाय this.

आप इसे बंद भी कर सकते हैं

const myObject = (function(){
var ctx; // as closure variable
return {
init(){
ctx = canvas.getContext("2d");
},
drawSomething(){
ctx.drawImage(image,0,0);
}
}
}());

जो जावास्क्रिप्ट के कुछ कार्यान्वयन पर हैसबसे तेज लेकिन फिर से यह अंतर बहुत छोटा है और केवल एक कारक बन जाता है जो इस बात पर निर्भर करता है कि इसका उपयोग कितनी बार किया गया है और उपयोग के बीच कितना कोड है।

अंत में यह व्यक्तिगत शैली है, और उपयोग जो यह निर्धारित करेगा कि आप ऐसे चर / गुणों का उपयोग कैसे करते हैं।


जवाब के लिए 0 № 2

निर्भर करता है कि आप उन्हें हमेशा एक ही संदर्भ में खींचना चाहते हैं या नहीं। यदि प्रत्येक कॉल पर संदर्भ नहीं। यदि यह समान होगा तो संदर्भ रखें।