- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
全面理解JavaScript的caller,callee,call,apply概念
全面理解JavaScript的caller,callee,call,apply概念在提到上述的概念之前,首先想说说javascript中函数的隐含参数:argumentsArguments该对象代表正在执行的函数和调用它的函数的参数。[function.]arguments[n]参数function :选项。当前正在执行的 Function 对象的名字。 n :选项。要传递给 Function 对象的从0开始的参数值索引。?说明Arguments是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象。Arguments是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访问性质及方式,可以由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length。还有就是arguments对象存储的是实际传递给函数的参数,而不局限于函数声明所定义的参数列表,而且不能显式创建 arguments 对象。arguments 对象只有函数开始时才可用。下边例子详细说明了这些性质://arguments 对象的用法。functionArgTest(a, b) { vari, s = The ArgTest function expected ;varnumargs = arguments.length; // 获取被传递参数的数值。varexpargs = ArgTest.length; // 获取期望参数的数值。if(expargs 2) s += expargs + argument. ;elses += expargs + arguments. ;if(numargs 2) s += numargs + was passed.;elses += numargs + were passed.; s += \n\n; for(i = 0; i numargs; i++) {// 获取参数内容。s += Arg + i + = + arguments[i] + \n; }return (s); // 返回参数列表。}在此添加了一个说明arguments不是数组(Array类)的代码:Array.prototype.selfvalue = 1;alert(new Array().selfvalue);functiontestAguments() {alert(arguments.selfvalue); }运行代码你会发现第一个alert显示1,这表示数组对象拥有selfvalue属性,值为1,而当你调用函数testAguments时,你会发现显示的是“undefined”,说明了不是arguments的属性,即arguments并不是一个数组对象。caller返回一个对函数的引用,该函数调用了当前函数。?? functionName.caller??? functionName对象是所执行函数的名称。说明对于函数来说,caller 属性只有在函数执行时才有定义。如果函数是由顶层调用的,那么 caller 包含的就是 null 。如果在字符串上下文中使用 caller 属性,那么结果和functionName.toString一样,也就是说,显示的是函数的反编译文本。下面的例子说明了 caller 属性的用法:// caller demofunctioncallerDemo() {if(callerDemo.caller) {vara = callerDemo.caller.toString();alert(a); }else{alert(this is a top function); } }functionhandleCaller() {callerDemo(); }callee返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。[function.]arguments.callee可选项 function 参数是当前正在执行的 Function 对象的名称。说明callee属性的初始值就是正被执行的 Function 对象。callee属性是 arguments 对象的一个成员,它表示对函数对象本身的引用,这有利于匿名函数的递归或者保证函数的封装性,例如下边示例的递归计算1到n的自然数之和。而该属性仅当相关函数正在执行时才可用。还有需要注意的是callee拥有length属性,这个属性有时候用于验证还是比较好的。arguments.length是实参长度,arguments.callee.length是形参长度,由此可
您可能关注的文档
- 广东必修1第五单元英语课件(供高三一轮复习用).ppt
- Linux 基础TPnew3.ppt
- Shell与Bash 之三 脚本与编程.ppt
- c语言(第六章循环控制).ppt
- 第6章:循环控制.ppt
- 7幂函数及函数方程概念复习.doc
- 第4章 C51流程与控制.ppt
- 第五章 循环结构0.ppt
- 7.备课资料(3.2 奇偶性).doc
- C05循环结构程序设计.ppt
- 2025宁波市自然资源和规划局下属事业单位招聘6人笔试模拟试题及答案解析.docx
- 2025天津市河西区华星学校招聘笔试备考试题及答案解析.docx
- 2025浙江清华附中嘉兴实验学校招聘事业编制教师3人(第三批)笔试模拟试题及答案解析.docx
- 2025云南交通职业技术学院招聘博士4人笔试模拟试题及答案解析.docx
- 2025天津市海河医院第二批次人事代理制用工招聘12人笔试模拟试题及答案解析.docx
- 2025西安综合职业中等专业学校教师招聘笔试模拟试题及答案解析.docx
- 2025四川绵阳北川县从服务期满“大学生志愿服务西部计划”项目人员中考核招聘乡镇事业单位工作人员4人笔试模拟试题及答案解析.docx
- 2025昆明市五华区德仁中学秋季学期教师招聘(5人)笔试模拟试题及答案解析.docx
- 2025年甘肃省平凉市灵台县选调一般工作人员70人笔试模拟试题及答案解析.docx
- 2025云南省昭通市巧家县人民法院招聘合同制书记员(5人)笔试模拟试题及答案解析.docx
最近下载
- [中级注册安全工程师考试密押资料]安全生产管理模拟194.docx VIP
- 某光伏项目危险源辨识与风险评价清单.pdf VIP
- [中级注册安全工程师考试密押资料]安全生产管理模拟197.pdf VIP
- 品管圈PDCA优秀案例-提高保护性约束使用的规范率医院品质管理成果汇报.pptx
- [中级注册安全工程师考试密押资料]其他安全(不包括消防安全)技术模拟7.docx VIP
- (优质医学)汇报用提高约束具规范使用率.ppt
- 英文版公司章程ARTICLES OF ASSOCIATION OF.docx VIP
- 2025年海南省中考物理试题卷(含答案解析).docx
- 公司章程英文版 Company Articles of Association.doc VIP
- 室内外照明线路敷设要点.ppt VIP
文档评论(0)