⊗jsPmCxBM 443 of 505 menu

Баста кардани контекст бо воситаи усули bind дар JavaScript

Усули навбатӣ bind имкон медиҳад, ки контекстро ба функсия ба таври доимӣ баст. Ин усул функсияи наверо бармегардонад, ки дар дохили он this арзиши сахт муайяншуда дошта бошад.

Биёед дар мисол бубинем.

Бигзор мо як воридкунак дошта бошем:

<input id="elem" value="text">

Бигзор истинод ба ин воридкунак дар тағирёбандаи elem сабт шуда бошад:

let elem = document.querySelector('#elem');

Бигзор ҳамчунин функсияи зерини func-ро дошта бошем:

function func(param1, param2) { console.log(this.value + param1 + param2); }

Биёед бо ёрии bind функсияи наверо созем, ки нусхаи функсияи func хоҳад буд, аммо this дар он ҳамеша ба elem баробар хоҳад буд:

let newFunc = func.bind(elem);

Ҳоло дар тағирёбандаи newFunc функсия ҳаст. Биёед онро фаро хонем, ки дар параметри аввал '1' ва дар дуюм '2'-ро гузаронем (ёд орам, ки дар elem воридкунаке бо value, баробари 'text' мавҷуд аст):

newFunc('1', '2');

Биёед ҳамаро якҷоя гирем:

let elem = document.getElementById('elem'); function func(param1, param2) { console.log(this.value + param1 + param2); } let newFunc = func.bind(elem); newFunc('1', '2'); // 'text12'-ро хориҷ мекунад

Ҳатмӣ нест, ки натиҷаи коркарди bind-ро дар функсияи нав newFunc сабт кунем, танҳо метавонем func-ро аз нав сабт кунем. Баъд аз ин func ҳамон функсия хоҳад буд, ки буд, вале бо this-и сахт басташуда:

func = func.bind(elem);

Бигзор рамзи зерин дода шуда бошад:

<input id="elem" value="hello"> let elem = document.getElementById('elem'); function func(name, surname) { console.log(this.value + ', ' + name + ' ' + surname); } // дар ин ҷо сохтори бо bind()-ро нависед func('John', 'Smit'); // дар ин ҷо бояд 'hello, John Smit'-ро хориҷ кунад func('Eric', 'Luis'); // дар ин ҷо бояд 'hello, Eric Luis'-ро хориҷ кунад

Дар ҷои ишорашуда сохтор бо усули bind-ро чунон нависед, ки this дар дохили функсияи func ҳамеша ба воридкунак аз тағирёбандаи elem ишора кунад.

Тоҷикӣ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан