1

我正在学习 Javascript,所以对于大多数 JS 编码人员来说,这个问题可能看起来很可笑。我正在阅读 Javascript:好的部分,但我无法使这段代码工作:

Function.prototype.method = function(name,func){
    this.prototype[name] = func;
    return this;
}
Number.method('integer', function(){
    return Math[ this <0? 'ceiling' : 'floor'](this);
});
document.writeln(Math.floor(3.4)+"");
document.writeln((-10/3).integer());

正如您可能猜到的那样,第一个 document.writeln 函数按原样显示“3”,但第二个函数什么也不显示,错误是:“TypeError: Math["floor"] is not a function" 尽管它确实是一个函数。

我很确定这很愚蠢,但我不知道为什么它不起作用。谢谢你的时间。

法比安

4

2 回答 2

3

将 'ceiling' 变为 'ceil' 并且运行良好,我对其进行了测试:

Number.method('integer', function(){
    return Math[ this <0? 'ceil' : 'floor'](this);
});
于 2013-09-19T09:48:15.757 回答
1

“地板”确实是一个数学函数。但是您的代码返回应该是“ceil”的“ceiling”

于 2013-09-19T09:42:26.783 回答