将整数值添加到函数方法

时间:2018-02-10 11:19:22

标签: javascript jquery

我有一个用nameOfFunction();调用的函数,函数的输出是一个整数,例如。 10

我也有var number = 5;

我无法更改函数nameOfFunction();或将其替换为另一个变量。

有没有办法将number添加到nameOfFunction();,以便nameOfFunction();的输出等于15?

像这样:

nameOfFunction() + number = nameOfFunction();

输出

10 + 5 = 15

使用更多信息进行编辑:NameOfFunction();是我的电子商务网站购物车中所有商品的总费用。它是计算物品数量及其数量所需的所有功能的输出。

数字变量是根据购物车中的金额而变化的送货费用。总计使用NameOfFunction();呈现,并将值发布到表单。

我需要通过改变定义它的函数来操纵NameOfFunction();的输出。添加number必须在。

之后

我无法展示代码,因为它是钝的,脱离背景是没有意义的。

2 个答案:

答案 0 :(得分:1)

  

我无法更改函数nameOfFunction();或用另一个变量替换它。

从您随后的评论中,我的猜测(以及现在编辑和删除的答案的猜测 - 向Ele道歉,你说对了)是你可以,你只是不要实现你可以。在正常情况下,这样做(与删除的答案不同,坚持ES3级功能):

var oldFunction = nameOfFunction;
nameOfFunction = function() {
    return oldFunction.apply(this, arguments) + 5;
};

默认情况下,函数的标识符(技术上,绑定)是可写的,所以上面记得旧函数,然后用调用原始函数的新函数替换它的绑定值并添加5结果。代码使用Function#applyarguments来确保传递给函数的this和所有参数都由包装器传递。

现在,对nameOfFunction的所有调用都会看到旧函数的返回值加上5。

直播示例:

// The original function
function nameOfFunction(n) {
  return n * 15 + 7;
}

// Us hijacking it:
var oldFunction = nameOfFunction;
nameOfFunction = function() {
    return oldFunction.apply(this, arguments) + 5;
};

// All calls to it will now see the new return value:
console.log(nameOfFunction(2)); // 42

答案 1 :(得分:0)

存储在临时变量中,无论nameOfFunction返回什么,并添加要添加到其中的任何值。

let nameOfFunction = function() {
    return 10;
}
let temp= nameOfFunction();
let ans = temp+5;
console.log(nameOfFunction()+5);