老师,这个this到底指向哪里,

来源:6-1 对象的扩展(简洁表示法与属性名表达式)

twtszz

2020-08-08 14:53:58

const getUserInfo = (id = 1) => {

const name = 'xiaoming';

const age = 10;


return {

name,

age,

say() {

console.log(this.name + this.age);

}

};

};

我在控制台打印this,显示的是window,然后又看到其他提问,又是指向return,又是指向getUserInfo(),到底指向哪

const xiaoming = getUserInfo();


写回答

1回答

好帮手慕久久

2020-08-08

同学你好,问题解答如下:

this到底指向谁,和this所在的环境有关系,简单说就是代码中不同位置的this,指向可能是不同的。关于this,提供给同学一条规则:谁调用函数,该函数中的this就指向谁。

比如下面的this,就是指向window:

http://img.mukewang.com/climg/5f2e628e0927948f05540356.jpg

原因是“getUserInfo()”这句代码,就类似于”window. getUserInfo()”,所以此处的this指向window。

而下面的this,则是指向“getUserInfo()”:

http://img.mukewang.com/climg/5f2e62a3094eba2f05540358.jpg

即“xiaoming”这个变量调用了say方法,那say方法中的this就指向“xiaoming”,而“xiaoming”是“getUserInfo()”的返回值,所以也可以说成是指向“getUserInfo()”。

同学试着理解一下。

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

0

0 学习 · 10739 问题

查看课程