object作用域
来看一段代码
let obj = {
age: 20,
name:'zhangsan',
fun(){
age = 30
// 这里的this指向的是obj内局部的this
console.log(this.age);
console.log(age);
}
}
// 调用对象里的函数
obj.fun()
输出结果:
20 obj-this作用域.html:16
30 obj-this作用域.html:16
可以看出 在对象里调用this关键字,其拿到的是整个对象内部的内容,而不是黄色框外部的this
let obj1 = {
age: 20,
name: 'zhangsan',
fun() {
let nihao = () => console.log(this.name);
nihao()
}
}
obj1.fun()
执行结果
zhangsan obj-this作用域.html:27
这里拿到的是外部的this,这里使用了箭头函数,然而箭头函数并没有属于自己this
是函数,也是对象
function user() {
this.name = "John";
return {
name: "zhangsan"
}; // <-- 返回这个对象
}
console.log(new user().name); // zhangsan,得到了那个对象
zhangsan obj-this作用域.html:27