this作为函数参数
时间: 2023-10-25 21:09:47 浏览: 28
在函数中,this 是一个特殊的关键字,用于引用当前对象。当我们将 this 作为函数参数传递时,实际上是将当前对象传递给函数,让函数能够访问该对象的属性和方法。
例如,我们有一个对象 person,其中包含一个方法 sayHello:
```
const person = {
name: 'Alice',
sayHello: function() {
console.log(`Hello, my name is ${this.name}`);
}
}
```
我们可以直接调用 person 的 sayHello 方法,此时 this 指向 person 对象:
```
person.sayHello(); // 输出:Hello, my name is Alice
```
如果我们将 person 的 sayHello 方法作为参数传递给另一个函数,那么我们可以将 person 对象作为 this 参数传递给该函数,让该函数也能访问 person 对象的属性和方法:
```
function greet(func, context) {
func.call(context);
}
greet(person.sayHello, person); // 输出:Hello, my name is Alice
```
在上面的例子中,我们定义了一个 greet 函数,它接受两个参数:一个函数 func 和一个上下文对象 context。在函数内部,我们使用 call 方法将 context 作为 this 参数传递给 func 函数,这样 func 函数就能访问 context 对象的属性和方法了。最后,我们将 person 的 sayHello 方法和 person 对象分别作为 func 和 context 参数传递给 greet 函数,从而实现了在 greet 函数中调用 person 的 sayHello 方法。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)