bind()
是Function
物件內建置的方法,它們的第一個參數都是用來更改呼叫方法中this
的指向。需要注意的是bind
是傳回新的函數,以便稍後呼叫。
1.語法:
function.bind(thisArg[,arg1[,arg2[, ...]]])
thisArg
:呼叫綁定函數時作為 this參數傳遞給目標函數的值。如果使用new運算子建構綁定函數,則忽略該值。當使用 bind
在 setTimeout 中建立一個函數(作為回呼提供)時,作為 thisArg
傳遞的任何原始值都會轉換為 object
。如果 bind
函數的參數清單為空,或thisArg
是null
或undefined
,執行作用域的 this
將被視為新函數的 thisArg
。
arg1,
arg2,
...:當目標函數被呼叫時,預先置入綁定函數的參數清單中的參數。
傳回值:傳回一個原始函數的拷貝,並且擁有指定的this
值和初始參數
。
2.實例:
<script> //这是一个函数 function hello(name) { //this:执行上下文,程序的运行环境 //this当前是window,全局 this.name=name; console.log(this.name); } hello("天才上单"); //bind()可以改变函数中的this指向 //这是一个对象 const obj={ name :"天鹏下凡", }; //bind()只绑定不执行 let f1=hello.bind(obj,"那就这样吧!"); console.log(f1()); </script>
3.輸出
天才上单 那就这样吧! undefined
推薦:《2021年js面試題目及答案(大匯總)》
以上是淺談JS中的bind()的詳細內容。更多資訊請關注PHP中文網其他相關文章!