本人学习javascript
的this
相关内容的时候遇到了一点困惑, 如下:
var add = function(a, b) {
return a + b;
}
add.call(this, 1, 2) // 3
困惑在于, 这里的call
绑定的this
指代的是什么, 是不是指的window
, 如果是的话, 是不是这句话就相当于普通的函数调用, 即add(1, 2)
希望能有前辈解答, 不胜感激!
本人学习javascript
的this
相关内容的时候遇到了一点困惑, 如下:
var add = function(a, b) {
return a + b;
}
add.call(this, 1, 2) // 3
困惑在于, 这里的call
绑定的this
指代的是什么, 是不是指的window
, 如果是的话, 是不是这句话就相当于普通的函数调用, 即add(1, 2)
希望能有前辈解答, 不胜感激!
13 回答12.9k 阅读
8 回答2.7k 阅读
2 回答5.1k 阅读✓ 已解决
7 回答2.1k 阅读
5 回答1.3k 阅读
3 回答2.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
call()函数的作用是改变函数的执行上下文,也就是函数的this指针,第一个参数就是你想要函数所执行的那个上下文,这里面this,如果是在全局作用域执行,那么this指向的就是window。如果add.call()是在另一个非全局上下文,那么指的就是那个。可以看下面代码: