一、示例代码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不会当即调用,其余两个会当即调用函数