【js】js中的隐藏对象arguments,caller,callee
2016-03-11 11:12
656 查看
1.arguments: an array-like object(像数组的对象,可以使用数组的length方法,不可以使用push,pop方法)
·arguments叫做函数内部的期望参数,而调用该函数传入的参数叫做实际传递参数
·栗子:
2.caller:在函数内部使用,返回函数的反编译文本,若在函数外部使用,返回为null.
·栗子:
返回的反编译函数如下:
这里和toString()方法是有区别的:使用add.toString()方法返回如下,不论是在函数内调用还是在函数外调用:
·arguments叫做函数内部的期望参数,而调用该函数传入的参数叫做实际传递参数
·栗子:
alert(add(3)); //false function add(x,y){ alert(arguments instanceof Object); //true alert(arguments instanceof Array); //false alert(arguments.callee.length);//实参长度,为2; alert(arguments.length);//形参长度,为1; if(arguments.length != arguments.callee.length){ //true alert(arguments[0]); //3 alert(arguments[1]); //undefined return false; } alert(arguments[0]); alert(arguments[1]); return x+y; };
2.caller:在函数内部使用,返回函数的反编译文本,若在函数外部使用,返回为null.
·栗子:
<script type="text/javascript"> window.onload = function(){ alert(add(3)); alert(add.caller); //null }; function add(x,y){ alert(add.caller); //返回反编译函数 if(arguments.length != arguments.callee.length){ return false; } return x+y; }; function plus(x,y){ return x-y; }; </script>
返回的反编译函数如下:
function(){ alert(add(3)); alert(add.caller); }
这里和toString()方法是有区别的:使用add.toString()方法返回如下,不论是在函数内调用还是在函数外调用:
function add(x,y){ alert(add.caller); //返回反编译函数 if(arguments.length != arguments.callee.length){ return false; } return x+y; };
相关文章推荐
- Web报表工具FineReport中JavaScript的使用
- [JavaScript]String.format
- JavaScript——with()方法
- jsp中标签id和name的区别(转)
- JS 常用知识
- 用Javascript获取页面元素的位置
- js 数组去重问题
- javascript 返回字符长度,中文为两个字节,英文为一个字节
- 通过js验证表单提交内容
- JSP+Servlet总结
- Javascript获取经纬度,关于调用百度API的问题
- 爬虫技术:(JavaScript渲染)动态页面抓取超级指南
- html嵌入js代码显示而不执行的
- js日期转换综合
- javascript中top、clientTop、scrollTop、offsetTop的讲解
- jsonp解决跨域问题
- js字符串操作
- Java Servlet JSP编程(一)
- Json
- onclientclick和onclick区别