スコープの外から変数(関数の値を持つ)にアクセスできるかどうかは疑問でした。私は次のようなコードを持っています:関数内のjavascript関数
function parentFunction(){
var childFunction = function() {
// do something
}
}
$(function(){
// need to access childFunction() here.
});
スコープの外から変数(関数の値を持つ)にアクセスできるかどうかは疑問でした。私は次のようなコードを持っています:関数内のjavascript関数
function parentFunction(){
var childFunction = function() {
// do something
}
}
$(function(){
// need to access childFunction() here.
});
var childFunction;
function parentFunction(){
childFunction = function() {
// do something
}
}
$(function(){
childFunction();
});
childFunctionがparentFunctionの任意のクロージャを取得すると便利ですが、それ以外の場合は名前空間を失い、グローバル名前空間を汚染します。 – Matt
これはグローバルにすべてが一緒に起こっていると仮定して、私は単にスコープを示しています... – jondavidjohn
それは働いた - 私はchildFunctionの値を初期化するためにparentFunctionを最初に呼び出さなければなりませんでした。それから、私はchildFunctionを呼び出すことができました。ありがとうございました。 – donkapone
いいえ、あなたはいません。
var parentFunction = (function(){
var actualParentFunction = function(){
this.childFunction = function() {
// do something
};
}
return new actualParentFunction();
})();
これで、あなたが行うことができますポイント:
parentFunction.childFunction();
は 'parentFunction()' 'childFunctionを返すことができ、これを達成するための唯一の方法は、希望childFunction parentFunctionの属性を作ることです() '変数は実行終了時に?または 'parentFunction()'を呼び出す前に 'childFunction()'に影響を与えようとしていますか? – Rodaine