我正在使用原型(prototype)函数,但无法理解为什么下面的简单示例没有返回数字的负数。
Number.prototype.neg = function(x) { return -x };
var num = -1;
var num2 = 1234;
console.log(num.neg()); // returns NaN (and not 1)
console.log(num2.neg()); // returns NaN (and not -1234);
知道我在哪里犯了错误吗?我知道我可以使用属性 getter 来代替,但我正在首先完成基础知识(并希望从错误中吸取教训)。
最佳答案
您没有向函数传递任何参数,因此根据您声明函数的方式,您需要执行以下操作:
num.neg(-1);
当 x 未定义时返回 -x 会得到 NaN
。但这违背了目的。您需要稍微不同地声明该函数:
Number.prototype.neg = function() { return -this };
关于Javascript原型(prototype)函数失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35241910/