2014-09-05 86 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