Javascript原型函数失败

时间:2016-02-06 14:02:01

标签: javascript function 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,但我首先要完成基础知识(希望从错误中学习)。

1 个答案:

答案 0 :(得分:3)

您没有将任何参数传递给函数,因此根据您声明函数的方式,您需要执行以下操作:

num.neg(-1);

当x未定义时返回-x会给出NaN。但那种失败的目的。您需要以不同的方式声明函数:

Number.prototype.neg = function() { return -this };