を削除するだけですvar
var a = "declared variable";
var fc = function () {
console.log(a);
};
(function () {
a = "hello world";
fc();
}) ();
var は、現在のスコープ内の変数を定義します。
編集に応じて、スコープにアクセスする唯一の方法は、スコープ内にいる (または引数として渡す) ことです。あなたはそれを渡したくないので、これが私が見る唯一の他のオプションです.
var a = "declared variable";
(function () {
var fc = function () {
console.log(a);
};
var a = "hello world";
fc();
}) ();
または、このような構造に沿ってスコープを渡したい場合は機能します
var a = "declared variable";
var fc = function (scope) {
console.log(scope.a);
};
(function () {
this.a = "hello world";
fc(this);
}).apply({});
非常に技術的に言えば、それはあなたが伝えている範囲ではありませんが、これがどのように行われるかです。