我正在玩原型功能,并且无法理解为什么下面的简单示例不会返回数字的负数。
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,但我首先要完成基础知识(希望从错误中学习)。
答案 0 :(得分:3)
您没有将任何参数传递给函数,因此根据您声明函数的方式,您需要执行以下操作:
num.neg(-1);
当x未定义时返回-x会给出NaN
。但那种失败的目的。您需要以不同的方式声明函数:
Number.prototype.neg = function() { return -this };