js中arguments,caller,callee,apply的用法小结
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
*{padding: 0;margin: 0;}
#img{position: absolute;}
</style>
</head>
<body>
<img id="img" src="img/xi.png">
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript"> function ArgTest(a,b){
var i,s = "The ArgTest function expected";
//实际传入的参数个数
var numargs = arguments.length;
//期望的参数个数
var expargs = ArgTest.length;
alert(numargs+","+expargs);
for(i = 0;i<numargs;i++){
s += "\n Arg "+ i + "="+arguments[i]+"";
}
alert(s);
} function test1(a,b,c){
//期望的参数个数
alert(test1.length)
}
function callerDemo(){
//本函数对象callee
alert(arguments.callee.name)
//被调用的函数的信息
if(callerDemo.caller){
var a = callerDemo.caller.toString();
var namestr = callerDemo.caller.name;
// debugger;
alert(namestr);//handlecaller
}else{
alert("this is a top function")
}
}
function handlecaller(){
callerDemo();
}
handlecaller();
// ArgTest(1,2);
// test1();
</script>
</body>
</html>
arguments
对象代表正在执行的函数和调用它的函数的参数。
js中arguments,caller,callee,apply的用法小结的更多相关文章
- js 中arguments,call,apply,bind的使用
//对于 arguments和this, 每个函数都有自己独有的arguments和this, 且不进行链式查找 //arguments是什么? //答:1:arguments是收到的实参副本 //2 ...
- js中substr,substring,indexOf,lastIndexOf的用法小结
第一组:str.substr(start,length) 和 str.substring(start,end) 定义: str.substr(start,length) substr(start,le ...
- js中push(),pop(),unshift(),shift()的用法小结
1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容. 不同的是 push().pop() 是从数组的尾部进行增减,unshift ...
- js中push(),pop(),unshift(),shift()的用法
js中push(),pop(),unshift(),shift()的用法小结 1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及 ...
- JS中的call、apply、bind 用法解疑
JS中的caller arguments.callee call apply bind方法 一.call()和apply()方法 1.方法定义 call方法: 语法:call([thisObj ...
- JS中的call()和apply()方法(转)
转自:http://uule.iteye.com/blog/1158829 JS中的call()和apply()方法 博客分类: JS 1.方法定义 call方法: 语法:call([thisOb ...
- JS中的call、apply、bind方法
JS中的call.apply.bind方法 一.call()和apply()方法 1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]] ...
- js笔记——理解js中的call及apply
call及apply在js里经常碰得到,但一直感觉很陌生,不能熟练使用.怎样才能熟练应用呢? 为什么存在call和apply? 在javascript OOP中,我们经常会这样定义: function ...
- 关于 js 中的 call 和 apply使用理解
关于 js 中的 call 和 apply使用理解 在学习新的东西时候,碰到以前看过而又不理解,或则记忆不深的地方不妨回头看看书里知识点,有助于加深理解.正所谓--温故而知新. 废话不多说,直接上代码 ...
随机推荐
- C/C++学习之基础-001
1.C++虚函数的工作原理 虚函数(virtual function)需要虚函数表(virtual table)才能实现.如果一个类有函数声明成虚拟的,就会生成一个虚函数表,存放这个类的虚函数地址.若 ...
- Ant、Maven、Gradle
android Gradle project http://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/ http://www.voge ...
- Ettus Research USRP B200/B210 simple case
- Java三大主流开源工作流引擎技术分析
首先,这个评论是我从网上,书中,搜索和整理出来的,也许有技术点上的错误点,也许理解没那么深入.但是我是秉着学习的态度加以评论,学习,希望对大家有用,进入正题! 三大主流工作流引擎:Shark,oswo ...
- IOS 作业项目(4)步步完成 画图 程序(剧终)
// // CHViewController.m // SuperDrawingSample // // Created by JaikenLI on 13-11-21. // Copyrig ...
- Redis - set类型操作
set类型操作 设置操作:sadd: sadd key value 给指定的key添加元素,重复返回0表示添加失败. srem: srem key valu ...
- How to install more voices to Windows Speech?
!!!WARNING!!! This involves manual edits to your registry. If you mess it up, don't blame me. Do at ...
- cocos引擎v2.1版本android 编译问题解决办法 (cocos2d-x-3.4rc1)
下载了最新版的cocos v2.1.2beta,使用cocos.exe来创建项目,而且在最下方的附件功能里还勾选了“支持x86架构cpu”这个选项,导致使用build_native.py编译不通过,以 ...
- Java 中的数组操作
前言 在Java中,有很多封装好的类可以用来操纵数组(排序,复制等等),使得数组使用起来非常的方便.这就是高级语言带来的好处. 代码示例 - 一维数组 package test; import jav ...
- How to use liftover
First step, installation: download from UCSC genome browser chmod + x Second, very important: to dow ...