ES6类
es6中class会自动开启严格模式,所以没有指定this的时候,this会是undefined
到目前为止,本人遇到过的,在class内部的属性有四种写法,以下展示:
class Fun {
constructor() {
//构造器中的this固定是类的实例对象,所以以下写法会给实例对象上添加属性
this.d = d
this.e = () => {
console.log('e', this);
}
}
// a是静态方法,放在Fun类的自身上,只能由Fun调用,es5只能在外部Fun.xx = xxx这种方式
static a() {
console.log('a', this);
}
// b放在Fun的原型对象上,供实例对象调用,因为实例对象本身没有b,所以顺着原型链往上找
b() {
console.log('b', this);
}
// c放在了实例对象上,这种写法,可以弥补在构造器中没写的内容,
// 比如构造器中写this.xxx = xxx,也可以在外部直接写xxx=xxx,是一样的,但是如果两者都写了,以构造器为准
c = () => {
console.log('c', this);
}
}
function d(