阅读 241

类中的this的指向

总结:

1.constructor中的this指向该类的实例对象

2.类方法中的this指向调用它的对象

3.类中定义的方法,都开启了严格模式

class Person {
		constructor(name, age) {
			this.name = name;
			this.age = age
		}
speak() {
// speak方法放在类的原型对象时
// 原型链的查找规则,当读取了属性自身不存在属性,调用了自身不存在的方法,会沿着原型链去寻找
// 供实例使用
// 通过实例调用方法时,方法中的this就是实例自身
	console.log(this)
    }
}


const p1 = new Person('tom', 18)
p1.speak()
// 此时的this 是类的实例对象,这里是通过实例调用的


// 这不是调用,这是赋值语句,p1是实例,把p1上面的方法交给了X
const x = p1.speak()
// 这里是直接调用,类中定义的方法,都开启了严格模式,所以this的指向就是undefined
x()
//此时的this是undefined
复制代码
文章分类
阅读
文章标签