首頁  >  文章  >  web前端  >  淺談JS中的bind()

淺談JS中的bind()

autoload
autoload原創
2021-04-06 15:09:176095瀏覽

淺談JS中的bind()

    bind()Function物件內建置的方法,它們的第一個參數都是用來更改呼叫方法中this的指向。需要注意的是bind 是傳回新的函數,以便稍後呼叫。

1.語法:

function.bind(thisArg[,arg1[,arg2[, ...]]])
  •     thisArg:呼叫綁定函數時作為 this參數傳遞給目標函數的值。如果使用new運算子建構綁定函數,則忽略該值。當使用 bind 在 setTimeout 中建立一個函數(作為回呼提供)時,作為 thisArg 傳遞的任何原始值都會轉換為 object。如果 bind 函數的參數清單為空,或thisArgnullundefined,執行作用域的 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn