JavaScript ES2015 : Instanciate a class and use variables from class

标签 javascript class oop

我有一个类 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,它很快就会搞砸服务器

最佳答案

你应该用 classA 扩展 classB

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();

更新: 我认为绑定(bind) 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)();

关于JavaScript ES2015 : Instanciate a class and use variables from class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49217933/

相关文章:

javascript - 删除字段时更改总计

javascript - node.js:程序意外退出或挂起

php - 使用 PHP 在整个站点中使用一个对象的实例

Python:嵌套类而不使导入复杂化

objective-c - 如何避免部分基类中的 "incomplete implementation"警告

javascript - 使用 jQuery 固定菜单和滚动到 DIV

javascript - React hooks + WebSockets 的正确使用方法

class - 了解 Hadoop 包和类

javascript - 原型(prototype)继承设置

android - 如何从 Android AsyncTask 更改 Activity UI?