- 浏览: 2288081 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (357)
- J2EE (49)
- JavaScript (40)
- Spring (19)
- Struts (5)
- CSS (8)
- Hibernate (16)
- Java (67)
- DWR (4)
- JSON (3)
- XFIRE (1)
- Tomcat (1)
- Ant (2)
- 设计模式 (2)
- 经典收藏 (2)
- JSP (10)
- Linux (0)
- WebLogic (11)
- myeclipse (13)
- Buffalo (4)
- 文件上传相关 (1)
- oracle (33)
- html (6)
- JSTL (3)
- SVN (2)
- GIT (1)
- 孙卫琴(Java网络编程精解) (1)
- DOM4J (2)
- Swing (1)
- AJAX (1)
- Eclipse (5)
- 日志组件 (3)
- PowerDesigner (1)
- Jquery (22)
- IT技术开发相关网址 (1)
- Nutz (1)
- 其它 (1)
- Velocity (3)
- WebService (1)
- MySql (2)
- Android (1)
- Maven (2)
- Quartz (11)
- Lucene (1)
- springsource (1)
- Junit (1)
- Activiti (0)
最新评论
-
yzlseu:
拼凑,没有营养
Activiti进阶—分配组任务 -
zhangsenhao:
非常赞!代码很清楚
SpringMVC3.0+MyIbatis3.0(分页示例) -
xiamw2000:
分页写得不对,应该是 : order by ${orderNa ...
SpringMVC3.0+MyIbatis3.0(分页示例) -
sheertewtw:
...
SpringMVC:上传与下载 -
kingtoon:
...
XSS之xssprotect
转载:JavaScript中的arguments,callee,caller,call,appy [备忘]
http://hi.baidu.com/ai_zxc/blog/item/799fa0837a0434af0df4d20b.html
参考资料:
1 http://www.w3school.com.cn/js/pro_js_functions_arguments_object.asp
2 http://www.cnblogs.com/simayixin/archive/2011/05/09/2040953.html
3 js将类数组对象转换成数组对象
http://www.jb51.net/article/23332.htm
http://hi.baidu.com/ai_zxc/blog/item/799fa0837a0434af0df4d20b.html
参考资料:
1 http://www.w3school.com.cn/js/pro_js_functions_arguments_object.asp
2 http://www.cnblogs.com/simayixin/archive/2011/05/09/2040953.html
3 js将类数组对象转换成数组对象
http://www.jb51.net/article/23332.htm
/** * 演示arguments的用法,如何获取实参数和形数数 */ function argTest(a,b,c,d){ var numargs = arguments.length; // 获取被传递参数的数值。 var expargs = argTest.length; // 获取期望参数的数值。 alert( "实参数目为:" +numargs); alert( "形数数目为:" +expargs); alert(arguments[0]); alert(argTest[0]); //undefined 没有这种用法 } /** * 下面调用分别打印: * "实参数目为:2" * "形数数目为:4" * "1" * "undefined" */ argTest(1,2); /** * 下面调用分别打印: * "实参数目为:5" * "形数数目为:4" * "1" * "undefined" */ argTest(1,2,3,4,5)
/** * arguments不是数组(Array类) */ Array.prototype.selfvalue = 1; function testAguments(){ alert( "arguments.selfvalue=" + arguments.selfvalue); } alert( "Array.sefvalue=" + new Array().selfvalue); //打印 "Array.sefvalue=1" testAguments(); //打印 "arguments.selfvalue=undefined"
/** * 演示函数的caller属性. * 说明:(当前函数).caller:返回一个对函数的引用,该函数调用了当前函数 */ function callerDemo() { if (callerDemo.caller) { var a= callerDemo.caller.arguments[0]; alert(a); } else { alert( "this is a top function" ); } } function handleCaller() { callerDemo(); } callerDemo(); //打印 "this is a top function" handleCaller( "参数1" , "参数2" ); //打印 "参数1"
/** * 演示函数的callee属性. * 说明:arguments.callee:初始值就是正被执行的 Function 对象,用于匿名函数 */ function calleeDemo() { alert(arguments.callee); } calleeDemo(); // 打印 calleeDemo 整个函数体 ( function (arg0,arg1){alert( "形数数目为:" +arguments.callee.length)})(); //打印 "形数数目为:2"
/** * 演示apply,call函数的用法 * 说明:作用都是将函数绑定到另外一个对象上去运行,两者仅在定义参数方式有所区别: * apply(thisArg,argArray); * call(thisArg[,arg1,arg2…] ]); * 即所有函数内部的this指针都会被赋值为thisArg */ function ObjectA(){ alert( "执行ObjectA()" ); alert(arguments[0]); this .hit= function (msg){alert(msg)} this .info= "我来自ObjectA" } function ObjectB(){ alert( "执行ObjectB()" ); //调用ObjectA()方法,同时ObjectA构造函数中的所有this就会被ObjectB中的this替代 ObjectA.apply( this ,arguments); //ObjectA.call(this); alert( this .info); this .hit( "来自A的hit函数" ); } /** *当ObjectB()函数中第三行为这样时: *ObjectA.apply(this,arguments); *下面的调用,依次打印: * "执行ObjectB()" * "执行ObjectA()" * "参数0" * "我来自ObjectA" * "来自A的hit函数" *----------------------------------- *当ObjectB()函数中第三行为这样时: *ObjectA.call(this); *下面的调用,依次打印: * "执行ObjectB()" * "执行ObjectA()" * "undefined" * "我来自ObjectA" * "来自A的hit函数" */ ObjectB( '参数0' );
var value= "global 变量" ; function Obj(){ this .value= "对象!" ; } function Fun1(){ alert( this .value); } Fun1(); //打印 "global 变量" Fun1.apply(window); //打印 "global 变量" alert(window.value); //打印 "global 变量" alert(document.value); //打印 "undifined" Fun1.apply( new Obj()); //打印 "对象!"
发表评论
-
java json-lib & jQuery & jsonp
2016-06-30 11:31 824参考链接: 1、http://hanqunfeng.iteye ... -
JavaScript异步编程学习
2016-06-19 14:59 791一 JavaScript学习资源 1、Reg Braithwa ... -
jQuery图表(jqPlot,Highcharts)
2012-05-18 00:48 23556jQuery图表在http://www.oschina.net ... -
IE,FF获取文件绝对路径方法
2012-03-25 23:30 4986参考资料 1 解决Firefox3,IE7,IE8上传图片预览 ... -
My97DatePicker常用练习
2011-09-15 17:03 5149参考官网资料:http://www.m ... -
jQuery之实战(checkbox,table)
2011-08-19 16:22 3823实现功能如下:参考图片 1 页面加载时效果 2 全选效果 ... -
jQuery之checkbox(复选框)
2011-08-18 17:06 2104业务需求:经常在用户登记中有这样的东西,只选择其中一项或者多项 ... -
jQuery之radio(单选)
2011-08-18 15:41 2460页面代码如下: <inpu ... -
jQuery之DOM
2011-08-17 14:45 1480参考资料 1 跳蚤的小窝:)jQuery对象和DOM对象【jQ ... -
jQuery之入门(ready)
2011-08-17 11:46 2120参考资料 1 jquery $(document).ready ... -
IE下调试JS的小工具-CompanionJS
2011-08-02 13:12 1909参考资料 1 推荐一个IE下调试JS的小工具-Companio ... -
Frameset导致Cookies和Session丢失的原因及解决办法
2011-07-25 12:28 4364参考资料 1 Frameset导致Cookies和Sessio ... -
js获取html元素宽度的思考
2011-04-13 17:17 2500转载: js获取html元素宽度的思考 http://blog ... -
iframe自适应,跨域,JS的document.domain
2011-04-13 17:10 4759转载:iframe自适应,跨域 ... -
MIME帮助手册
2011-04-13 17:06 1384转载:MIME帮助手册 http://www.cnblogs ... -
Javascript:通用不间断滚动&省、市、地区联动选择JS封装类
2011-04-13 12:40 3593通用不间断滚动JS封装类&省、市、地区联动选择JS封装 ... -
JS:表格排序
2011-03-24 15:09 2824参考资料 js的table排序,支持多浏览器,多列同时排序,自 ... -
JavaScript CSS Style属性对照表
2011-03-14 16:41 1448转载:JavaScript CSS Style属 ... -
国人:JSON-RPC之初识
2011-03-14 15:20 3814相关链接 1 json-rpc-for-java http:/ ... -
HTML A标记事件写法
2011-01-05 17:24 2915HTML A标记事件写法 出现状况:点击A标记事件后,整个框 ...
相关推荐
### 理解JavaScript中的`caller`, `callee`, `call`, `apply` #### Arguments对象:JavaScript函数调用的参数管理器 在JavaScript中,每个函数都有一个隐含参数`arguments`,它允许开发者访问传递给函数的所有参数...
接下来,我们讨论`call`和`apply`,它们是JavaScript中函数调用的两种特殊方式。`call`和`apply`的主要区别在于传递参数的方式:`call`接受一个参数列表,而`apply`接受一个包含参数的数组。 `call`方法允许我们...
JavaScript中的arguments、caller和callee是与函数调用相关的几个重要概念,它们分别代表函数调用时传递的参数对象、调用当前函数的函数以及当前正在执行的函数。 首先,我们来了解arguments。在JavaScript中,当...
JavaScript中arguments、caller、callee、call和apply是与函数相关的几个重要概念和对象。它们为JavaScript的函数提供了非常灵活的功能,特别是在处理函数参数和调用上下文方面。接下来,将对这些概念逐一进行详细...
在JavaScript的世界里,caller、callee、call和apply是四个非常重要的概念,它们涉及到函数的调用方式和执行上下文。这些知识点对于深入理解和优化代码至关重要,尤其在处理高阶函数和面向对象编程时。 首先,让...
在JavaScript中,arguments、caller、callee和apply是四个与函数调用相关的特性,它们在编写高级和复杂的函数逻辑时非常有用。下面将详细介绍这些概念及其用法。 1. **arguments对象** arguments对象是一个特殊...
本文实例讲述了JavaScript中callee和caller的区别与用法。分享给大家供大家参考,具体如下: 1.callee 在函数的内部,有两个特殊的对象:arguments和this。其中arguments是一个类似数组的对象,包含着传入函数的所有...
在JavaScript中,`caller` 和 `callee` 是与函数相关联的两个属性,它们提供了函数调用和被调用的上下文信息。了解这两个属性的用法,对于深入理解JavaScript中的函数执行机制非常有帮助。 首先来看`caller`属性。`...
JavaScript中的隐含参数`arguments`, `callee`, 和 `caller`是函数内部的特殊变量,它们提供了关于函数调用的重要信息。下面将详细解释这三个参数的使用方法。 **arguments对象** `arguments`对象是一个非常有用的...
JavaScript中的`arguments.callee`是一个在函数内部引用当前正在执行的函数对象的属性。这个属性在函数递归、保持函数封装性以及匿名函数自我引用等场景中尤其有用。然而,由于`arguments`对象是一个相对昂贵的操作...
### 理解JavaScript中的`caller`, `callee`, `call`, `apply` #### Arguments对象 在深入了解`caller`, `callee`, `call`, 和 `apply` 之前,我们先来看看`arguments`对象。`arguments`对象是在JavaScript函数内部...
在JavaScript中,`arguments` 和 `arguments.callee` 都是与函数参数相关的特殊对象,但它们的作用和用途略有不同。下面将详细解释这两个概念及其区别。 `arguments` 对象是一个类数组对象,它包含了函数调用时传入...
综合以上知识点,arguments、caller和calle在JavaScript中的应用可以极大地增强函数的灵活性和功能。例如,可以利用arguments处理可变参数的情况,通过caller追溯调用链进行错误追踪,以及在需要自引用的递归函数中...
### 理解JavaScript中的`caller`, `callee`, `call`, `apply`的区别 #### 一、`arguments`对象 在深入探讨`caller`, `callee`, `call`, 和`apply`之前,我们先来了解一个重要的概念——`arguments`对象。 **`...
JavaScript中的`callee`、`call`和`apply`都是与函数有关的重要概念,它们提供了不同的方式来处理函数调用和上下文。以下是这三个特性的详细解释: **arguments.callee** `arguments.callee`是一个在函数内部可以...
JavaScript中的`arguments`对象是一个非常重要的特性,尤其在处理不确定数量的函数参数时。它不是一个真正的数组,但具有数组类似的行为,允许我们访问函数调用时传入的所有参数。在这个文档中,我们将深入探讨`...