2011-09-11 57 views

答えて

3

あなたは、通話やAPPYとスコープを変更することができます。

function jCamp(code){ 
    function test(){ 
     alert(); 
    } 
    code.call(test); 
} 
jCamp(function(){ 
    this(); 
}); 

だから、私はこのようにそれを行うだろう

+0

それはそうしました。 THX! –

1

テスト()JCAMP()が定義されていない(あなたのコードを変更しない場合には、ライン8上の一つだ)への引数である匿名関数の内部で呼び出されを。関数test()は、jCamp()の定義内でのみ定義されています。

+0

それでは、関数がjCamp()の引数関数を介してのみ呼び出すことができるようにするにはどうすればいいですか? –

0
function jCamp(code){ 
    this.test = function(){ 
     alert("test"); 
    } 
    code(); 
} 
jCamp(function(){ 
    this.test(); 
}); 

プライベート関数を参照するようにthisを変更します。

0

testは、jCamp内でのみ使用できるプライベート関数です。引数として渡された無名関数からは呼び出すことはできません。あなたはこのように、しかしそれ財産行うことができます:それはは、それが呼び出されないを、作成したときに

function jCamp(code){ 
    this.test = function(){ 
     alert(); 
    } 
    code(); 
} 
jCamp(function(){ 
    this.test(); 
}); 
+0

'this'が' window'なので、実際に 'test'がグローバルに格納されることに注意してください。 – delnan

0

機能の範囲が決定されます。

関連する問題