JavaScript改变this指向:call、apply、bind

<html>
<head></head>
<body></body>
<script>

// foo是一个函数
function foo(name, age) {
  console.log(this);
  console.log(`姓名:${name},年龄:${age}`);
}

// obj是一个对象
let obj = {
  count: 1
}

foo("小明", "23");
// 运行结果:
// Window
// 姓名:小明,年龄:23

// call、apply、bind可以让foo的this指向obj

foo.call(obj, "小明", "23");
// 运行结果:
// {count: 1}
// 姓名:小明,年龄:23

foo.apply(obj, ["小明", "23"]);
// 运行结果:
// {count: 1}
// 姓名:小明,年龄:23

foo.bind(obj, "小明", "23")();
// 运行结果:
// {count: 1}
// 姓名:小明,年龄:23

</script>
</html>

 

posted @ 2021-02-14 00:47  starlog  阅读(28)  评论(0编辑  收藏  举报