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神马关系?
展开
 我来答
左手编码
2012-04-27 · TA获得超过756个赞
知道小有建树答主
回答量:421
采纳率:0%
帮助的人:350万
展开全部
没有ceiling,是ceil。这里应该是印刷错误。Math不是数据类型,是对象。Number才是数据类型,它表示数值类型,它也可以创建对象。我们自定义对象的时候,一般都是这么写的
function myObject(){} ,所以对象有时候也可以叫做函数。 Number如果没有方法method,它会沿着原型链一直往上找,如果没找到,就返回undefined
追问
首先感谢你真正解决了我第一个问题
其次我想问下,照1楼的那个图,Number找方法的时候顺序是:Number Number.prototype Function.prototype Object.prototype是么
追答
嗯,相当于继承一样。子类没有,往父类找,一直到最顶层,如果还没有,就会报错了。
yinruisi4
2012-04-27 · TA获得超过594个赞
知道小有建树答主
回答量:277
采纳率:100%
帮助的人:241万
展开全部

Function对象是JS的内置对象.

Function.protoype是对象的原型

function 方法名(参数1,参数2){

  代码;

}

相当于

方法名 = function (参数1,参数2){

  代码;

}

相当于

方法名 = new Function(参数1,参数2,"代码;");

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BeiJingGril
2012-04-27
知道答主
回答量:27
采纳率:0%
帮助的人:14.9万
展开全部
Math 不是一种数据类型,是js对象;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式