一、示例代碼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不會當即調用,其餘兩個會當即調用函數