2017-07-20 20 views
2

私はこのようなクラスを持っているノード内のコンストラクター変数へのアクセス。 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

私はコンストラクタ変数にアクセスするにはどうすればよいですか?

答えて

5

できません。 constructorの中で宣言された変数は、コンストラクタからのみアクセスできます。

function PrometheusController() { 
    this.counter = new client.Counter(...); 
} 
:上記のコードは、このES5コードに対応するようES6クラスは、コンストラクタ関数の周りだけで糖衣構文です、覚えておいてください

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

:あなたはおそらく何をしたいのか

はこれです

のように使用できます。

let controller = new PrometheusController(); 
// controller.counter can be used here 
+1

ありがとうございました! – Illusionist

関連する問題