在Class中方法写在constructor里面与外面的区别
class A {
constructor() {
this.inside = function () {};
}
outside() {}
}
const a1 = new A();
const a2 = new A();
console.log(a1.outside === a2.outside); // true
console.log(a1.inside === a2.inside); // false
可以看出,由于outside
是挂载在原型链上的方法,因此不同的实例对象的outside
都是完全相等的;
对于inside
而言,在使用new关键字实例化的时候,new的内部实现中,会改变this指向,所以每个实例的inside
方法是不一样的.