向Number抛出异常添加方法

时间:2016-03-08 09:07:27

标签: javascript

我正在阅读javascripts好的部分,并正在测试代码。

Number.method('integer', function ( ) {
	document.writeln("called"+ this<0);
return Math[this < 0 ? 'ceiling' : 'floor'](this);
});

并通过将其称为

进行测试
document.writeln((-10 / 3).integer());

我收到Uncaught TypeError: Math[(intermediate value)(intermediate value)(intermediate value)] is not a function错误。难道我做错了什么?我在chrome上测试它

我忘了提及,还有另一种方法添加到function.protoype中作为

Function.prototype.method = function (name, func) {
 this.prototype[name] = func;
 return this;
};

2 个答案:

答案 0 :(得分:2)

没有方法Math.ceiling(),只有Math.ceil()。 可能这会产生错误:

  

未捕获的TypeError:数学[(中间值)(中级   value)(中间值)]不是函数

答案 1 :(得分:1)

您需要添加Number

的原型
Number.prototype.integer = function ( ) 
{
    document.writeln("called"+ this<0);
    return Math[this < 0 ? 'ceiling' : 'floor'](this);
};

添加到原型时,请确保Number的实例将具有此属性而不是Number对象。

另外,请尽量避免使用document.writeln,因为它基本上会删除删除现有事件的现有文档。如果需要,请使用document.body.innerHTML

Number.prototype.integer = function ( ) 
{
    document.body.innerHTML += "<br>called"+ (this<0);
    return Math[this < 0 ? 'ceil' : 'floor'](this); //observe that ceiling is also replaced with ceil since there is no such method called ceiling
};