object作用域--初试

JiHua
2022-08-07
66

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

这里使用了 new关键字 进行构造一个新的函数,这里构造了一个 user 函数 返回的是一个对象 对象里包含着 name 属性

标签:对象、Object、作用域、this、object作用域--初试