2016-03-20 87 views
0

例如,我有一個函數定義如下:
是有可能得到通過函數名參數在JavaScript

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

是否有可能通過函數名fn1外FN1得到這個函數的參數?
我想動態創建一個新的fn2(p1, p2),並在此函數中傳遞obj來呼叫fn1
任何人都可以幫忙嗎?非常感謝。

+0

範圍是在Javascript危險地帶。你想做什麼?更具體的例子會有所幫助。 – Wainage

+0

非常寬泛更具體 –

+0

我將範圍更改爲obj,它只是一個對象。 – Lune

回答

1

你並不需要的範圍傳遞給function這樣的:

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

當然,存在一些方法來做到這一點,所以其中之一是這樣的:你可以使用'arguments'對象,它是所有'function'對象中存在的局部變量,它是一個包含所有參數的數組,因此您需要抽象參數的名稱並使用此數組。 https://msdn.microsoft.com/en-us/library/87dw3w1k(v=vs.94).aspx –

相關問題