2011-10-25 5 views
46

तो, मैं सिर्फ यह जानना चाहता हूं कि क्या कोई जावास्क्रिप्ट में init() कथन का विशेष अर्थ और उपयोग जानता है, कभी भी वास्तव में नहीं जानता था, एक नया प्रकार।जावास्क्रिप्ट में init() उपयोग का उपयोग क्या है?

+0

init आरंभ करने के लिए सिर्फ लघुरूप है। आमतौर पर इसका उपयोग "नया ऑब्जेक्ट()" बनाने के लिए किया जाता है। JQuery में init() फ़ंक्शन की तरह एक नई jQuery ऑब्जेक्ट देता है। – William

+1

@LiamWilliam - – UpTheCreek

उत्तर

90

जावास्क्रिप्ट में अंतर्निहित init() फ़ंक्शन नहीं है, यानी, यह भाषा का हिस्सा नहीं है। लेकिन व्यक्तिगत प्रोग्रामर के लिए शुरुआती सामान के लिए अपना init() फ़ंक्शन बनाने के लिए यह असामान्य नहीं है (कई भाषाओं में)।

एक विशेष init() फ़ंक्शन का उपयोग पूरे वेबपृष्ठ को शुरू करने के लिए किया जा सकता है, इस स्थिति में इसे शायद दस्तावेज़.ready या अधिभार प्रसंस्करण से बुलाया जा सकता है, या यह किसी विशेष प्रकार की वस्तु को प्रारंभ करने या ... अच्छी तरह से शुरू किया जा सकता है , जो तुम कहो।

कोई भी init() जो कुछ भी लिखा गया है, वह वास्तव में वास्तव में है जो इसे लिखने के लिए आवश्यक है। कुछ प्रकार के कोड को किसी प्रारंभिकरण की आवश्यकता नहीं होती है।

function init() { 
    // initialisation stuff here 
} 

// elsewhere in code 
init(); 
+14

आरंभ करें मुझे यह पसंद है कि आपने इसे कैसे phrased किया: बहुत स्पष्ट। मैं अपना जवाब हटा रहा हूं और +1 – attack

+0

क्या यह अभी भी मामला है? मेरे पास अब कुछ कोड है जो इस तरह कुछ करता है: 'var bEvent = function() {...}(); 'और बाद में,' $ (फ़ंक्शन() { // लॉन्च फ़ंक्शंस bEvent.init() }) ' – Jeff

+1

@ जेफ - क्या अभी भी मामला है? आपके उदाहरण में, 'bEvent' को उस ऑब्जेक्ट को संदर्भित करना चाहिए जिसमें 'init()' विधि है, जिसे आप देखना चाहिए फ़ंक्शन बॉडी के भीतर कहीं भी बनाया गया है जिसे आप नहीं दिखाते हैं। – nnnnnn

16

जावास्क्रिप्ट में जब आप की तरह

नीचे

चरण 1 एक निर्माता कॉल के माध्यम से किसी भी वस्तु बनाने के लिए: एक समारोह बनाने के व्यक्ति का कहना है कि ..

function Person(name){ 
this.name=name; 
} 
person.prototype.print=function(){ 
console.log(this.name); 
} 

चरण 2: इस कार्य के लिए एक उदाहरण बनाने ..

var obj=new Person('venkat') 

// उपर्युक्त रेखा इस कार्य (व्यक्ति) को तुरंत चालू करेगी और एक ब्रा और नई वस्तु व्यक्ति {नाम: 'वेंकट'} कहा जाता

आप इस समारोह का दृष्टांत और एक ही वक्त पर कॉल भी नीचे की तरह कर सकते हैं करने के लिए नहीं करना चाहते हैं ..

var Person = { 
    init: function(name){ 
    this.name=name; 
    }, 
    print: function(){ 
    console.log(this.name); 
    } 
}; 
var obj=Object.create(Person); 
obj.init('venkat'); 
obj.print(); 
ऊपर में

विधि init ऑब्जेक्ट गुणों को तुरंत चालू करने में मदद करेगा। मूल रूप से init आपकी कक्षा पर एक कन्स्ट्रक्टर कॉल की तरह है।

-1

एनबी। कन्स्ट्रक्टर फ़ंक्शन नामों को सामान्य कार्यों से अलग करने के लिए पूंजी पत्र से शुरू होना चाहिए, उदा। के बजाय MyClass

या तो आप अपने निर्माता समारोह से init कॉल कर सकते हैं:

var myObj = new MyClass(2, true); function MyClass(v1, v2) { // ... // pub methods this.init = function() { // do some stuff }; // ... this.init(); // <------------ added this }

या अधिक बस तुम सिर्फ निर्माता समारोह के अंत में init समारोह के शरीर नकल कर सकता है। वास्तव में init फ़ंक्शन का कोई आवश्यकता नहीं है, अगर इसे केवल एक बार बुलाया जाता है।

+1

और कृपया http: // stackoverflow जांचें।com/प्रश्न/3526916/जावास्क्रिप्ट स्तरीय-कॉल-विधि-जब वस्तु प्रारंभ –

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

  • कोई संबंधित समस्या नहीं^_^