在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方法是不一样的.

posted @ 2022-05-11 14:24  Yune_Neko  阅读(293)  评论(1编辑  收藏  举报