用JavaScript伪造函数重载的最佳方法是什么?
我知道不可能像其他语言一样重载Javascript中的函数。如果我需要一个函数有两个用途foo(x)和foo(x,y,z)这是最好的/优选的方法:
foo(x)
foo(x,y,z)
y = y || 'default'
使用参数进行函数重载的最佳方法是不检查参数长度或类型;检查类型只会使您的代码变慢,并且您可以享受数组,空值,对象等的乐趣。
大多数开发人员所做的就是将对象作为其方法的最后一个参数。该对象可以容纳任何东西。
function foo(a, b, opts) { // ... if (opts['test']) { } //if test param exists, do something.. } foo(1, 2, {"method":"add"}); foo(3, 4, {"test":"equals", "bar":"tree"});
然后,您可以在方法中以任何方式处理它。[切换,if-else等。]