2014-09-05 96 views
0

時如何添加額外的參數,我有這樣的情況:改變匿名函數來命名的函數

"render": function(a, b) { // do stuff } 

我想這個更改爲命名函數:

"render": foo 

function foo(a, b) { // do stuff } 

的事情是,該功能可以在不同情況下做不同的事情,所以我想添加另外一個參數,例如:

function foo(a, b, type) 

Ho我是否會調用這個函數並仍然傳入原始參數?我無法控制調用此方法的代碼,因此我不知道ab來自哪裏。

+0

那麼,什麼是問題,只是檢查type?你想調用原始功能?如果他們不通過類型,它是未定義的...「if(type === undefined){console.log(」no type「); }' – epascarello 2014-09-05 13:14:21

+0

無論函數有多少個參數('type'會是'undefined'),你可以直接調用它'foo(x,y)'。什麼不行?你在找[方法重載](http://stackoverflow.com/a/12694605/1048572)? – Bergi 2014-09-05 13:18:11

+0

[有沒有更好的方法來做Javascript中的可選函數參數?](http://stackoverflow.com/questions/148901/is-there-a-better-way-to-do-optional-function-參數在JavaScript中) – 2014-09-05 13:20:55

回答

0

在功能

"render": function(a, b,type) { 
if(type !== undefined){ 
     //do stuff with type 
    } 
// do stuff 
} 
+0

讓我澄清,'a'和'b'是我自己不傳入的參數,它們被框架傳遞給函數。我想添加一個額外的'type'參數,我自己傳入。 – LeonCS 2014-09-05 13:34:40

4
if (typeof type === 'undefined') { 
    // 2 parameters 
} else { 
    // 3 parameters 
} 
+0

+1類型的使用 – 2014-09-05 13:21:58

+0

讓我澄清,'a'和'b'是我自己不傳入的參數,它們被框架傳遞給函數。我想添加一個額外的'type'參數,我自己傳入。 – LeonCS 2014-09-05 13:34:02