You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含Spread Syntax的JavaScript代码转换为无扩展运算符形式?

替换扩展运算符的实现方案

当然可以转换,这里用arguments对象和Function.prototype.apply方法就能替代原代码里扩展运算符的功能,改写后的代码如下:

const opposite = function (f) {
  return function () {
    return !f.apply(null, arguments);
  };
};

关键替换说明:

  • 原代码里的(...args)参数收集逻辑,直接用普通函数的arguments对象替代——arguments会自动收集函数调用时传入的所有参数,是一个类数组对象。
  • 原代码里的f(...args)参数展开调用逻辑,换成f.apply(null, arguments)——apply方法的第二个参数接受类数组对象,会把它的元素作为独立参数传给目标函数f,效果和扩展运算符完全一致。

内容的提问来源于stack exchange,提问作者Olivier Sin Fai Lam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 09:53:00