2011-10-17 24 views
0

我有一個函數的數組,我也在裏面使用dynatree插件。jquery dynatree數組函數

例子:

fn1: function(){ 
    ..... 
}), 
fn2: function(){ 
    ..... 
}), 
fn3: { param1: xValue, param2: yValue } 

現在我想在FN3添加函數一樣,

fn3: fn3a 

//In fn3a 
function fn3a(){ 
    //Based on condition add values. 
    if... 
     param1: xValue, param2: yValue 
    else... 
     param1: xValue, param2: zValue 
} 

我怎樣才能在功能{...}定義這些PARAMS。

請建議。 在此先感謝。

+0

這是確定的隱匿你的代碼,但至少後工作代碼,請。從您發佈的小代碼中很難理解。 – muhuk

回答

1

真的不知道,如果這是你在找什麼,但也許這只是個開始:

var funcs = { 
    /* ... others functions ... */ 
    fn3: { param1: 2, param2: 3 } 
}; 


funcs.fn3 = (function (/*the old object*/ oldValue){ 
    /* 
    ... private variable scope here, which will be accessible by the returned 
    function only! ... 
    */ 

    /* do stuff with the old values and store the values in private scope */ 
    var 
    param1 = oldValue.param1 * oldValue.param1, 
    param2 = oldValue.param2 * oldValue.param2; 

    /* return a new function */ 
    return function() { 
    /* the new return value */ 
    return param1 + '/' + param2; 
    }; 
}(/*pass the old object*/ funcs.fn3)); 


// debug output: 
console.log(funcs.fn3()); // => 4/9 
+0

嗨Yoshi,謝謝你的回覆。是的,我正在尋找這種類型。但是在你建議的代碼中,我需要fn3:{param1:'some x value',param2:'some y value'}被替換爲fn3:fn3a和那些在fn3a中調用的參數 – Max

+0

讓我直截了當:你有'{param1 ...}'定義的代碼,並且希望在運行時用一個新的函數來完全替代它,這個函數可以訪問這些值? – Yoshi

+0

更改了代碼,看看;) – Yoshi