2016-04-05 11 views
0

JavaScriptでこれが可能かどうかはわかりません。私は渡された関数を介して関数の変数にアクセスしたい(または、関数が 'onend'呼び出しで渡された場合)。JS内のパラメータとして関数を渡し、受信関数の変数にアクセスします。

function Outer() { 

    var fn; 
    var foo = 'this is foo'; 

    this.bar = function(x) { 
    fn(); 
    } 

    this.setFunction = function(f) { 
    fn = f; 
    } 
} 

var o = new Outer(); 
o.setFunction(function() { 
    alert(foo); //doesn't work 
}); 

o.bar(); //want to alert 'this is foo' 
+1

https://jsfiddle.net/rayon_1990/jde585nm/ – Rayon

+0

ていない場合は、ほとんどのものは、JavaScriptで可能です:) –

答えて

1

あなたはこの

function Outer() { 

    var fn; 
    this.foo = 'this is foo'; 

    this.bar = function(x) { 
    fn(); 
    } 

    this.setFunction = function(f) { 
    fn = f; 
    } 
} 

var o = new Outer(); 
o.setFunction(function() { 
    alert(o.foo); 
}); 

o.bar(); //want to alert 'this is foo' 

を試してみて、何が必要であれば教えてもらえ。あなたのケースで 感謝

2

fn機能的にコールバックです。引数としてローカルfoo変数とコールバックを呼び出します。すべて

function Outer() { 

    var fn; 
    var foo = 'this is foo'; 

    this.bar = function() { 
    fn(foo); 
    } 

    this.setFunction = function(f) { 
    fn = f; 
    } 
} 

var o = new Outer(); 
o.setFunction(function(foo) { 
    alert(foo); 
}); 

o.bar(); 
+0

感謝。私はこれとアルヴァロの仕事の両方として、受け入れられた解決策を共有したいと思っていました。最後に、私の実際のスクリプトは以下のAlvaroのソリューションを使用しました。 – Gazzer

関連する問題