我在玩原型函数,无法理解为什么下面的简单示例未返回数字的负数。
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);
知道我在哪里弄错了吗?我知道我可以改用属性获取器,但是我正在首先研究基础知识(并希望从错误中学习)。
最佳答案
您没有将任何参数传递给函数,因此根据声明函数的方式,您需要执行以下操作:
num.neg(-1);
当x未定义时返回-x给出
NaN
。但是这种失败的目的。您需要对函数的声明有所不同:Number.prototype.neg = function() { return -this };