JavaScript class中函数的this指向
首先定义一个基础的类
class Test {
setName(name = 'kingmin') {
this.name = name
}
speak() {
console.log(this);
}
}
将上面的类实例出一个对象K,并调用K的speak方法
const k = new Test()
k.speak() // Test {name: "kingmin"}
上面的打印结果显示由类构造出的实例对象,因此this会指向由类构造出的实例对象
尝试将K实例对象身上的speak方法赋值给另一个变量进行调用
const ts = k.speak
ts() // undefined
打印undefind,因此上面的方法可以改写成如下
const ts = function () {
"use strict"
console.log(this);
}
ts() // undefined
由此可以得出,在class中,定义的方法,class会默认在函数体内开启严格模式,严格控制this的指向
CTRL+D快速收藏,欢迎常来喔