日期:2014-05-16 浏览次数:20449 次
如何在脚本运行的时候查看他的父函数——callee和caller两个属性(不是方法)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script src="lib/jquery-1.6.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(
function(){
parent();
}
);
function parent(){
caller1();
}
function caller1(){
//functionName.caller 返回一个对函数的引用(即调用本函数的父函数),该函数调用了当前函数。
//如果函数是由 JScript 程序的顶层调用的,那么 caller 包含的就是 null 。
alert(caller1.caller);
}
function callee1(){
//callee是arguments的属性,返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。
alert(arguments.callee);
}
function callee2(n){
//使用递归的方式调用自身的函数
if(isNaN(parseInt(n))){
alert("传入的参数应该是数字!");
return false;
}
alert(n);
if(n<=1){
return 1;
}else{
//callee(n-1)实际上调用的函数为callee2(n-1)
return arguments.callee(n-1);
}
}
</script>
<title>无标题文档</title>
</head>
<body>
<button onclick="parent();">caller</button><br>
<button onclick="callee1();">callee1</button><br>
<button onclick="callee2(4);">callee2</button>
</body>
</html>
?