概述
严格模式是由ECMA-262规范定义的新兴JavaScript标准,旨在改善错误检查功能并且标识可能不会延续到未来JavaScript版本的脚本。ES5严格模式是限制性更强的JavaScript变体,它与常规JavaScript的语义不同,其分析更为严格。
严格模式下类中的this指向
类中所有的方法,在局部默认开启了严格模式,它不敢指向window所以指向了undefined
<script>
class Person{
constructor(name,age){
this.name=name
this.age=age
}
study(){
//study 方法放在了哪里?-类的原型对象上,供方法使用
//通过Person实例调用study时,study中的this就是Person实例
console.log(this);
}
}
const p1=new Person('熊熊',19)
p1.study()//p1实例调用
const x=p1.study//把p1的属性交给x,方法属于特殊的属性
x()//这个是直接调用
</script>
严格模式下函数的this指向
严格模式下函数this指向是undefined
function demo1(){
"use strict"
console.log(this)
}
demo1()
function demo2(){
console.log(this)
}
demo2()