2016-03-20 7 views
0

が、私は以下のように機能を定義したJavaScriptでの関数名でパラメータを取得することが可能である:
それは例えば

var fn1 = function(obj, p1, p2) {} 

それは、関数名fn1外FN1することにより、この関数のパラメータを取得することはできますか?
新しいfn2(p1, p2)を動的に作成したいのですが、この関数でobjを呼び出してfn1を呼び出しますか?
誰でもこれについてお手伝いしますか?どうもありがとう。あなたはこのようなfunctionにスコープを渡す必要はありません

+0

範囲はJavascriptで危険な領域です。あなたは何をしようとしているのですか?より具体的な例が役立ちます。 – Wainage

+0

非常に広いです。 –

+0

私はobjに範囲を変更します、それは単なるオブジェクトです。 – Lune

答えて

1

:私はあなたが欲しいものを信じ

var fn1 = function(scope, p1, p2) {} 

call法のようなものです。 callメソッドは、別のオブジェクトに代わってメソッドを呼び出すために使用されます。 このオブジェクトを元のコンテキストから最初のargで指定された新しいオブジェクトに変更することができます。 call Method Ref. - JS

ここではいくつかの例:

var fn1 = function(p1,p2){}; 

var fnThatCall = function(p1,p2){ 
    var scpe = this; 
    fn1.call(scope,p1,p2); 
}; 
+0

はい、そうです、それは私の意味ですが、 'fn1'パラメータに基づいて動的に 'fnThatCall'を定義したいと思います。可能? – Lune

+0

これを行うにはいくつかのアプローチがあります。その1つはこれです。すべての 'function'オブジェクトにあるローカル変数である' arguments'オブジェクトを使用できます。これはすべての引数を持つ配列です。パラメータの名前を抽象化し、この配列を使用します。 https://msdn.microsoft.com/en-us/library/87dw3w1k(v=vs.94).aspx –