Javascript中允许指定函数中this的指向,有三个方法可以动态指定普通函数this的指向:
- call()
- apply()
- bind()
call改变this
使用call方法调用函数,同时指定被调用函数中的this的值。
语法:
fun.call(thisArg, arg1, arg2, ...)
参数:
- thisArg:在fun函数运行时指定的this值。
- arg1, arg2:传递其它参数
call函数的返回值:就是函数的返回值,因为它就是调用函数。
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
const obj = {
uname: 'andy'
}
function fn(x, y) {
console.log(this)
console.log(x + y)
}
// 调用函数,改变this指向了obj
fn.call(obj, 1, 2)
</script>
</body>
</html>