JavaScriptには、「プライベート」変数のようなものはありません。 JavaScriptでカプセル化と情報隠蔽を実現するために、次のように関数クロージャ内で変数をラップできます。
var counter = (function() {
var i = 0;
var fn = {};
fn.increment = function() { i++; };
fn.get = function() { return i; };
return fn;
{)();
counter.increment();
counter.increment();
alert(counter.get()); // alerts '2'
JavaScriptではi
をプライベート変数とは呼ばないので、何と呼びますか?
wikipedia によると、それらは「アップバリュー」と呼ばれています。
クロージャを使用すると、関数はその直接の字句スコープ外の変数にアクセスできます。アップバリューは、クロージャでバインド(クローズ)された自由変数です。クロージャは、そのアップバリューを「クローズオーバー」すると言われています。
人々があなたの意味を理解できるように、それらを誤ってプライベート変数と呼ぶ方がおそらく良いでしょうが。