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

如何在不修改nameOfFunction()前提下,使其输出为自身返回值与变量之和?

解决方案:函数包装(劫持)实现结果累加

既然你不能修改nameOfFunction()的内部代码,也不能替换它的调用方式,那我们可以通过包装原函数的方式来实现需求,完全符合你的约束条件。

具体代码实现

// 先保存原函数的引用,防止覆盖后无法调用原逻辑
const originalCartTotal = nameOfFunction;

// 重新定义函数,让它返回原结果加上指定的number值
nameOfFunction = function() {
  // 调用原函数拿到购物车原本的总费用
  const originalTotal = originalCartTotal();
  // 加上预设的number(这里是5)后返回
  return originalTotal + number;
};

// 现在调用就会得到累加后的结果
console.log(nameOfFunction()); // 输出15

为什么这能行?

这个方法的核心是函数劫持:我们并没有修改原nameOfFunction()的内部代码,只是把这个函数变量重新指向了一个新的函数。新函数内部会先调用原函数获取它原本的返回值(也就是购物车的原始总费用),再把它和你的number变量相加后返回。

这样一来,其他地方调用nameOfFunction()的方式完全不需要改变,但返回的结果已经是你想要的累加后的值了——完美匹配你“10 + 5 = 15”的需求。

注意事项

  • 要确保你能访问到nameOfFunction这个变量(比如它是全局变量,或者在当前作用域内可访问);
  • 如果运行环境是严格模式,部分全局函数可能不允许被重写,但电商网站的购物车总费用函数一般不会有这种限制。

内容的提问来源于stack exchange,提问作者JPB

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:27:56