gpt4 book ai didi

javascript - 为什么在prototype.js中2.ceil()会抛出异常而2.3.ceil()会返回3?

转载 作者:行者123 更新时间:2023-11-28 21:22:57 24 4
gpt4 key购买 nike

为了使其更通用......我通过这样做更改了 Javascript 中 Number 对象的原型(prototype)

Number.prototype.ceil = function() { return Math.ceil(this); }; 

现在 2.3.ceil() 返回 3 并且 2.ceil() 抛出异常。但如果我执行 b=2 然后执行 b.ceil() ,它就可以正常工作!所以,基本上还是javascript的问题。

最佳答案

该方法是 Math.ceil,它不是实例方法。

var b = 2;
console.log(Math.ceil(b));

b = 2.3;
console.log(Math.ceil(b));

看起来创建一个可以执行此操作的原型(prototype)方法是微不足道的:

Number.prototype.ceil = function() {
return Math.ceil(this);
};

console.log(2.3.ceil());

看起来 JavaScript 保留了数字文字中的第一个小数,用于向数字添加小数。这是语言的一个特点。为了解决这个问题,您需要两位小数:

2.ceil(); // does not work
2.3.ceil(); // does work
2..ceil(); // does work

关于javascript - 为什么在prototype.js中2.ceil()会抛出异常而2.3.ceil()会返回3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5779943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com