一尘不染

Javascript中的函数重载-最佳做法

javascript

用JavaScript伪造函数重载的最佳方法是什么?

我知道不可能像其他语言一样重载Javascript中的函数。如果我需要一个函数有两个用途foo(x)foo(x,y,z)这是最好的/优选的方法:

  1. 首先使用不同的名称
  2. 使用类似的可选参数 y = y || 'default'
  3. 使用参数数量
  4. 检查参数类型
  5. 或如何?

阅读 257

收藏
2020-04-25

共1个答案

一尘不染

使用参数进行函数重载的最佳方法是不检查参数长度或类型;检查类型只会使您的代码变慢,并且您可以享受数组,空值,对象等的乐趣。

大多数开发人员所做的就是将对象作为其方法的最后一个参数。该对象可以容纳任何东西。

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等。]

2020-04-25