Javascript ES2015:实例化一个类并使用类中的变量

问题描述 投票:0回答:2

我有一个 B 类,它实现了另一个 A 类。

在A类中我需要使用B类中定义的变量

class  classA {
    methodA() {
        console.log(parentClass.variableToRetrieve);
    }
}


class classB {
    constructor() {
        this.variableToRetrieve = 1;
        this.A = new classA();
    }
}

var B = new classB();
B.A.methodA();

我应该在 classA.methodA 中使用什么并在控制台中看到 1 ?

编辑

我已经想过在 classA 构造函数中传递 B 对象,或者传递值,但是由于我可以有数百个变量和(可能)数百万个 classA,它会很快使服务器过载

javascript class oop
2个回答
1
投票

你应该用 A 类扩展 B 类

class  classA {

    methodA() {
        console.log('parentClass.variableToRetrieve');
    }

}

class classB extends classA {
    constructor() {
        super()
        this.variableToRetrieve = 1;
    }

    method() {
        this.A = new classA();
    }

}
var B = new classB();
B.methodA();

更新: 我认为绑定 classB 将解决问题。

class  classA {
    methodA() {
        console.log(this.variableToRetrieve);
    }
}


class classB {
    constructor() {
        this.variableToRetrieve = 4;
    }
}

var B = new classB();
var A = new classA();
A.methodA.bind(B)();


0
投票

您的 A 类必须扩展 B 类才能做到这一点

© www.soinside.com 2019 - 2024. All rights reserved.