جاوا اسکرپٹ میں کیا بندیاں ہیں اور وہ کیسے کام کرتے ہیں؟



جاوا اسکرپٹ میں بندش ہر مرتبہ فنکشن تخلیق کے وقت ، فنکشن بنائے جانے کے وقت بنائے جاتے ہیں۔ یہ کوڈ کو استعمال کرتے وقت ان پر بہتر کنٹرول فراہم کرتا ہے۔

فنکشن پر مبنی زبان ہے جو صارف کو بہت ساری آزادی دیتی ہے۔ آپ متحرک طور پر ایک فنکشن تشکیل دے سکتے ہیں ، اسے کسی دوسرے متغیر پر کاپی کرسکتے ہیں یا کسی دوسرے فنکشن میں دلیل کے طور پر پاس کرسکتے ہیں اور بعد میں کسی مختلف جگہ سے کال کرسکتے ہیں۔ جاوا اسکرپٹ میں بندش ہر مرتبہ فنکشن تخلیق کے وقت ، فنکشن بنائے جانے کے وقت بنائے جاتے ہیں۔ اس مضمون میں ، ہم مندرجہ ذیل ترتیب میں بندش کو سمجھیں گے:

جاوا اسکرپٹ میں بندشوں کا تعارف

بندش a کا مرکب ہے تقریب اس کے آس پاس کی ریاست یعنی لغوی ماحول کے حوالے سے ایک ساتھ بنڈل ملا ہے۔ دوسرے الفاظ میں ، ایک بندش آپ کو اندرونی فنکشن سے بیرونی فنکشن کے دائرہ کار تک رسائی فراہم کرتی ہے۔





کوڈر - جاوا اسکرپٹ میں بندش - ایڈیورکا

زیادہ تر ڈویلپر جاوا اسکرپٹ میں بندشوں کو شعوری یا لاشعوری طور پر استعمال کرتے ہیں۔ یہ کوڈ کو استعمال کرتے وقت ان پر بہتر کنٹرول فراہم کرتا ہے۔ نیز ، یہ کسی بھی دوران سب سے زیادہ پوچھا جانے والا سوال ہے .



اشیاء کی ایک صف پیدا کرنا

مثال:

فنکشن foo () {var x = 10 فنکشن اندرونی () {ریٹرن x} ریٹرن اندرونی} var get_func_inner = foo () کنسول.لاگ (get_func_inner ()) کنسول.لاگ (get_func_inner ()) کنسول.لاگ (get_func_inner ())

آؤٹ پٹ:

10
10
10



یہاں ، آپ اس تک رسائی حاصل کرسکتے ہیں متغیر x جو فعل اندرونی () کے ذریعہ فن فو () میں بیان کیا جاتا ہے کیونکہ بعد میں انکلوسینگ فنکشن کے عمل کے وقت انکلوسینگ فنکشن کی اسکوپ چین کو محفوظ رکھتا ہے۔ اس طرح ، اندرونی فنکشن اس کی اسکوپ چین کے ذریعے ایکس کی قدر جانتا ہے۔ اس طرح آپ جاوا اسکرپٹ میں بندیاں استعمال کرسکتے ہیں۔

عملی بندش

بندش آپ کو Lexical ماحول کو کسی فنکشن کے ساتھ منسلک کرنے کی اجازت دیتی ہے جو اس اعداد و شمار پر چلتی ہے۔ اس کے واضح مترادف ہیں آبجیکٹ اورینٹڈ پروگرامنگ ، جہاں اشیاء ہمیں اشیاء کی خصوصیات کو ایک یا زیادہ طریقوں سے وابستہ کرنے کی اجازت دیتی ہیں۔

اس کے نتیجے میں ، آپ کہیں بھی ایک بندش استعمال کرسکتے ہیں کہ عام طور پر صرف ایک ہی طریقہ کار کے ساتھ کسی شے کا استعمال کرسکتے ہیں۔

مثال:

فنکشن میکسائزر (سائز) {ریٹرن فنکشن () {document.body.style.fontSize = سائز + 'px'}} var سائز 12 = makeSizer (12) var سائز 14 = makeSizer (14) var size16 = makeSizer (16)

مندرجہ بالا مثال عام طور پر کال بیک کے طور پر منسلک ہوتی ہے: ایک ہی فعل جو واقعہ کے جواب میں پھانسی دی جاتی ہے۔

آخر میں حتمی اور حتمی شکل کے درمیان فرق

اسکوپ چین

جاوا اسکرپٹ میں بندشوں کے تین دائرہ کار ہیں جیسے:

  • مقامی اسکوپ
  • بیرونی افعال کا دائرہ کار
  • عالمی دائرہ کار

ایک عام غلطی کو یہ احساس نہیں ہو رہا ہے کہ ، اگر ایسی صورت میں جب بیرونی فعل خود ایک گھوںسلا ہوا فعل ہوتا ہے تو ، بیرونی فعل کے دائرہ کار تک رسائی میں بیرونی فنکشن کا دائرہ کار شامل ہوتا ہے ، جس سے مؤثر طریقے سے فنکشن اسکوپ کی ایک زنجیر پیدا ہوتی ہے۔

// عالمی گنجائش var x = 10 فنکشن کا مجموعہ (a) {واپسی فنکشن (b) {واپسی فنکشن (c) {// بیرونی افعال اسکوپ ریٹرن فنکشن (d) {// مقامی گنجائش a + b + c + d + x}}}} کنسول.لوگ (رقم (1) (2) (3) (4)) // لاگ 20

اسے گمنام افعال کے بغیر بھی لکھا جاسکتا ہے:

ڈبل میں انٹ جاوا میں تبدیل کریں
// عالمی دائرہ کار var x = 10 فنکشن کا مجموعہ (a) {ریٹرن فنکشن سم 2 (b) {ریٹرن فنکشن سم 3 (c) {// بیرونی افعال اسکوپ ریٹرن فنکشن Sum4 (d) {// لوکل اسکوپ ایک + b + c لوٹائے گا + d + x}}}} var s = رقم (1) var s1 = s (2) var s2 = s1 (3) var s3 = s2 (4) کنسول.لاگ (s3) // لاگ 20

مندرجہ بالا مثال میں ، وہاں گھریلو افعال کا ایک سلسلہ موجود ہے جس میں کسی بھی تقریب کے بیرونی دائرہ کار تک رسائی ہے۔ لہذا ، آپ یہ کہہ سکتے ہیں کہ بند ہونے کی وجہ سے بیرونی فعل کے تمام دائرہ کاروں تک رسائی ہوتی ہے جس کے اندر وہ اعلان کیا گیا تھا۔

ایک لوپ کے اندر بندش

آپ جاوا اسکرپٹ میں بندش کا استعمال ہر ایک انڈیکس میں ایک گمنام فنکشن کو اسٹور کرنے کے لئے کر سکتے ہیں سرنی . آئیے ایک مثال لیں اور دیکھیں کہ لوپ میں بندیاں کیسے استعمال ہوتی ہیں۔

مثال:

فنکشن بیرونی () {var arr = [] var i for (i = 0 i)<3 i++) { // storing anonymus function arr[i] = function () { return i } } // returning the array. return arr } var get_arr = outer() console.log(get_arr[0]()) console.log(get_arr[1]()) console.log(get_arr[2]())

آؤٹ پٹ:

3
3
3
3

اس کے ساتھ ، ہم اپنے مضمون کے آخر میں پہنچ گئے ہیں۔ میں امید کرتا ہوں کہ آپ یہ سمجھ گئے ہوں گے کہ جاوا اسکرپٹ میں بندش کس طرح کام کرتی ہے اور کوڈ کا بہتر کنٹرول حاصل کرنے کے ل they ان کا استعمال کیسے ہوتا ہے۔

اب جب آپ جاوا اسکرپٹ میں بندش کے بارے میں جانتے ہیں تو ، چیک کریں بذریعہ ایڈوریکا۔ ویب ڈویلپمنٹ سرٹیفیکیشن ٹریننگ آپ کو HTML5 ، CSS3 ، ٹویٹر بوٹسٹریپ 3 ، jQuery اور گوگل API کا استعمال کرتے ہوئے متاثر کن ویب سائٹ بنانے اور اسے ایمیزون سادہ اسٹوریج سروس (S3) پر تعینات کرنے میں مدد ملے گی۔

ہمارے لئے ایک سوال ہے؟ براہ کرم 'جاوا اسکرپٹ میں بندشیں' کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم آپ کو واپس ملیں گے۔