2016-10-26 5 views
3

定数として指定されたモジュール(またはオブジェクト)をnode.jsで変更できるのはなぜですか?例えば定数JSの変更を許可するJS

が、これは許可されています

const EXPRESS = require('express'); 
EXPRESS.someProperty = 'some value'; 

しかし、これではありません。

const MYCONST = '123'; 
MYCONST = '456'; 

答えて

5

constあなたがいないどのような基準点を基準自体を変えることができないことを意味します。ドキュメントから

const a = { name: 'tom' }; 

// you cannot change the reference (point a to something else) 
a = 5; // this is an error 

// but you can change the value stored at that reference with no problem 
a.name = 'bob'; 
+1

その参照にすべての良い別のオブジェクトを割り当てることはできません失敗します答え。説明の人に感謝します。 – Azevedo

2

CONST宣言は、値への読み取り専用の参照を作成します。 は、保持している値が不変であるという意味ではなく、変数 の識別子を再割り当てすることはできません。例えば、内容がコンテンツである である場合、これはオブジェクト自体が依然として変更可能であることを意味する。

これはノード固有ではなく、Javascript仕様の一部です。参照EXPRESSは定数です。constを使用して宣言すると、参照を再割り当てすることはできません。

const EXPRESS = require('express'); 
EXPRESS = 'something else';