js bind 綁定this指向

一、示例代碼javascript

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>bind函數綁定this指向</title>
    </head>

    <body>
        <script type="text/javascript"> window.color = "red"; var o = { color: "blue" }; function sayColor() { console.log(this.color); } sayColor(); //輸出:red
            //綁定this指向 
            var objectSayColor = sayColor.bind(o); //this指向o
 objectSayColor(); //輸出:blue
        </script>
    </body>

</html>

二、說明html

sayColor() 調用 bind() 並傳入對象 o ,建立了 o bjectSayColor() 函數。 object-SayColor() 函數的 this 值等於 o ,所以即便是在全局做用域中調用這個函數,也會看到 "blue" 。java

三、與call、apply區別app

bind與apply、call最大的區別就是:bind不會當即調用,其餘兩個會當即調用函數

相關文章
相關標籤/搜索