javascript中Function.prototype的问题
在javascript语言精粹中看到这样的代码:Function.prototype.method=function(name,func){this.prototype[...
在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((-10/3).integer());
我自己调试不成功,提示 Object #<Object> has no method 'ceiling'
有什么解决方法么?
另外谁能跟我解释下这个,我理解的是Function.prototype给它加方法的话,应该是之后定义的任何函数都有这个方法,但是Math不是一种数据类型么,跟Function神马关系? 展开
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((-10/3).integer());
我自己调试不成功,提示 Object #<Object> has no method 'ceiling'
有什么解决方法么?
另外谁能跟我解释下这个,我理解的是Function.prototype给它加方法的话,应该是之后定义的任何函数都有这个方法,但是Math不是一种数据类型么,跟Function神马关系? 展开
3个回答
展开全部
没有ceiling,是ceil。这里应该是印刷错误。Math不是数据类型,是对象。Number才是数据类型,它表示数值类型,它也可以创建对象。我们自定义对象的时候,一般都是这么写的
function myObject(){} ,所以对象有时候也可以叫做函数。 Number如果没有方法method,它会沿着原型链一直往上找,如果没找到,就返回undefined
function myObject(){} ,所以对象有时候也可以叫做函数。 Number如果没有方法method,它会沿着原型链一直往上找,如果没找到,就返回undefined
追问
首先感谢你真正解决了我第一个问题
其次我想问下,照1楼的那个图,Number找方法的时候顺序是:Number Number.prototype Function.prototype Object.prototype是么
追答
嗯,相当于继承一样。子类没有,往父类找,一直到最顶层,如果还没有,就会报错了。
展开全部
Math 不是一种数据类型,是js对象;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询