Javascript原型(prototype)函数失败

标签 javascript function prototype

我正在使用原型(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/

相关文章:

javascript - 按键时的幻灯片无法正常工作

javascript - Sails.js - 尝试显示模型数据时出现问题

c - C中的许多包装函数

c++ - 类函数/变量是否必须在使用前声明?

javascript - native 原型(prototype)与 $.extension()

javascript - 使用本地json文件查找key :value using javascript

search - 创建一个 .bashrc 函数以在所有文件中搜索特定字符串

javascript - 查找数组中最近的日期

c++ - 模板函数导致找不到标识符

javascript - 如何创建一个简单的获取表单来创建动态路由,具体取决于搜索字段的值(MONGODB 和 Node.js)