在Javascript中伪造函数重载的最佳方法是什么?

我知道不可能像在其他语言中那样在Javascript中重载函数.

  1. 一开始就用不同的名字
  2. 使用可选参数,如y = y || 'default'
  3. 使用多个参数
  4. 判断参数类型
  5. 或者用什么方式?

推荐答案

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

大多数开发人员所做的是将对象作为其方法的最后一个参数.这个物体可以装任何东西.

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"});

然后,您可以在您的方法中随心所欲地处理它.[switch 、If-Else等]

Javascript相关问答推荐

在时间轴完整日历中显示日期标题

不渲染具有HTML参数的React元素

D3多线图显示1线而不是3线

如何解决chrome—extension代码中的错误,它会实时覆盖google—meet的面部图像?'

React Code不在装载上渲染数据,但在渲染上工作

康威的生活游戏规则在我的Javascript版本中不起作用.''我做错了什么?

如何从Intl.DateTimeFormat中仅获取时区名称?

并不是所有的iframe都被更换

使用POST请求时,Req.Body为空

IF语句的计算结果与实际情况相反

VSCode中出现随机行

Rxjs流中生成IMMER不能在对象上操作

使用NextJS+MongoDB+Prisma ORM获取无效请求正文,无法发布错误

不同表的条件API端点Reaction-redux

在Java脚本中录制视频后看不到曲目

构建器模式与参数对象输入

如何在TransformControls模式下只保留箭头进行翻译?

限制数组中每个元素的长度,

JSX/React -如何在组件props 中循环遍历数组

相对于具有选定类的不同SVG组放置自定义工具提示