JavaScripti funktsiooni bind () meetod võimaldab objektil kopeerimata meetodit teiselt objektilt laenata.
Meetodi süntaks bind()
on:
func.bind(thisArg, arg1,… argN)
Siin func
on funktsioon.
bind () parameetrid
bind()
Meetod võtab:
thisArg
- väärtus, mis on antudthis
parameetrinafunc
. Seda ignoreeritakse, kui seotud funktsioon luuakse uue operaatori abil.arg1,… argN
(valikuline) - argumendid, mis põhinevad seotud funktsioonile pakutavatel argumentidelfunc
.
Märkused:
- Selle argenti kasutamisel setTimeouti sees teisendatakse primitiivsed väärtused objektideks.
- Kui
thisArg
seda pole täpsustatud, käsitletakse seda käivitamisala ulatusenathisArg
.
Tagastab väärtuse sidumisest ()
- Tagastab antud funktsiooni koopia koos selle väärtusega ja algsete argumentidega (kui on olemas).
Näide: bind () kasutamine
this.x = 1; // "this" here is the global window object in browser const obj = ( x: 100, getX: function () ( return this.x; ), ); console.log(obj.getX()); // 100 const retrieveX = obj.getX; // the function gets invoked at the global scope console.log(retrieveX()); // 1 // Create a new function with 'this' bound to obj // global variable 'x' with obj's property 'x' are two separate entities const boundGetX = retrieveX.bind(obj); console.log(boundGetX()); // 100
Väljund
100 1 100
Kui meetod on objektist kuskil eraldi edasi antud - this
on kadunud. Funktsioonist seotud funktsiooni loomine algse objekti abil lahendab selle probleemi kenasti
Soovitatav lugemine: JavaScripti funktsioonikõne ()