在节点中访问构造函数变量。 JS

时间:2017-07-20 15:51:10

标签: javascript node.js

我正在学习node.js

我有一个这样的课程 - >

 const client = require('prom-client');

class PrometheusController {
    constructor () {
        let counter = new client.Counter({ name: 'http_total_requests', namespace:"test", help: 'test' });
}

    get (fn) {
        this.counter.inc(); // Inc with 1
}

节点js抱怨计数器未定义。

我尝试保存this变量作为此处推荐的帖子,但也无法访问 - javascript class variable scope in callback function

如何访问构造函数变量?

1 个答案:

答案 0 :(得分:5)

你做不到。在constructor内声明的变量只能从构造函数中访问。

您可能想要做的是:

constructor() {
    this.counter = new client.Counter(...);
}

请记住,ES6类只是构造函数的语法糖,所以上面的代码对应于这个ES5代码:

function PrometheusController() {
    this.counter = new client.Counter(...);
}

可以像:

一样使用
let controller = new PrometheusController();
// controller.counter can be used here