如何覆盖除法运算符的行为?

时间:2014-04-26 13:12:39

标签: javascript overwrite operand

如果除以零,在JS中划分时会得到Infinity,我想通过返回undefined来更改该行为,以便我可以识别真实的Infinity与错误结果。

假设编写下一行会调用某些数学或内置函数进行除法:

var a = 6 / 0;
  1. '/'函数的全名/路径是什么?
  2. 有没有办法覆盖它(或任何其他操作数)?

  3. 锐化:

    Infinity / 1 = Infinity(顶部无限是由零除的结果)而undefined / 1 = Nan。 是否有可能没有编写和使用我自己的函数来确定计算过程中是否存在问题?

2 个答案:

答案 0 :(得分:1)

/不是JavaScript中的函数,它是一个运算符,因此您无法覆盖它。

但是,您可以编写一个保护分部的功能:

function divide (a, b) {
    return b === 0 ? undefined : a / b;
}

并像这样使用它:

var a = divide(6, 0);

答案 1 :(得分:0)

这只是一个算术运算符,用于除法目的。

你无法覆盖它。但是,您可以使用if else块检查无穷大值,并将其更改为未定义。