arguments对象的callee属性和caller属性
js中的arguments对象代表正在执行的函数和调用它的函数的参数。arguments对象有两个属性,callee和caller。collee表示当前正在执行的方法,caller表示调用该方法的对象,如果函数是顶层调用的,则caller值为null。这两个属性可以用在以下情形:
1、方法的链式调用
(function(o){
alert(o);
return arguments.callee;
})("第一次调用")("第二次调用")("第三次调用");
2、递归调用
var result = (function(n) {
if (n <=1)
return 1;
else
return n + arguments.callee(n - 1);
})(100);
alert(result);
3、获取方法信息
var func = function(){
//打印方法体
alert(arguments.callee);
//打印方法名 func
alert(arguments.callee.name);
//打印调用方法体
alert(arguments.callee.caller);
//打印调用方法名 callfunc
alert(arguments.callee.caller.name);
};
function callfunc(){
func();
}
callfunc();
arguments对象的callee属性和caller属性的更多相关文章
- arguments对象的callee属性详解
在函数内部,有两个特殊的对象:arguments和this. argument对象有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数.请看下面这个非常经典的阶乘函 ...
- arguments对象,caller 和 callee
arguments对象是比较特别的一个对象,arguments非常类似Array,但实际上又不是一个Array实例. 它指的是函数对象里的参数,且只能在函数内部使用. 使用 检测函数的参数个数,引用属 ...
- JavaScript 对象属性作实参以及实参对象的callee属性
参考自<<JavaScript权威指南 第6版>> /* * 将对象属性用作实参, 从而不必记住参数的顺序. */ function arraycopy(from,from_s ...
- 你不知道的JavaScript--Item11 arguments对象
1.什么是arguments arguments 是是JavaScript里的一个内置对象,它很古怪,也经常被人所忽视,但实际上是很重要的.所有主要的js函数库都利用了arguments对象.所以ag ...
- arguments对象详解
在javascript中,函数是没有重载这一项的,所谓的重载,一个函数可以有多个,就是参数的个数和形式不同所以引用的功能不同,而js不存在函数重载,不管传不传参数,函数里面是否引用,关系都不大,一个函 ...
- 关于arguments对象以及函数的柯里化;
1.arguments对象 Arguments是个类似数组但不是数组的对象,说他类似数组是因为其具备数组相同的访问性质及方式,能够由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性 ...
- JavaScript arguments对象
1.在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性.arguments非常类似Array,但实际上又不是一个Array实例.可以通过如下代码得以证 ...
- arguments对象的实例使用
新年第一记,从这里开始,先来个简单的!去年的知识梳理留下了很多尾巴,原因有很多(知识储量不足,懒了,项目多...) lg:都是借口~ 好吧,我承认,这都是借口,今年一定把尾巴清干净! 下面要写的是 ...
- 浅谈JS的arguments对象
在JavaScript中,arguments属于当前对象的一个内置属性,arguments非常类似于Array对象,但是又不是实例的Array.比如: Array.prototype.testArg ...
随机推荐
- angular.js前端分层开发(页面和js代码分离,并将js代码分层)
一. 抽取模块成base.js文件// 定义模块: var app = angular.module("eshop",['pagination']); 二. 抽取服务成brandS ...
- UI学习网站
以下是我收集的UI设计的网站提供给大家参考: 站酷 www.zcool.com.cn UI中国 www.ui.cn 学UI网 www.xueui.cn UIGREAT www.uigreat.com ...
- leetcode989
class Solution: def addToArrayForm(self, A, K): i = len(A) - 1 while i >= 0 and K > 0: A[i] += ...
- 配置阿里云的金融云上的rsync
论坛里看到易淘发的教程, 转载过来
- tar 排除文件
tar -cvf test.tgz test/ --exclude *.txt --exclude *.jpg
- centos服务器如何用命令查看哪个程序内存占用情况,硬盘空间占用
1.free -m只能查看内存总量情况 2.top M ( 注意M是大写) 3.ps aux|head -1; ps aux | sort -k4nr | head -10 ------------- ...
- redis异常和注意点
目录: 1. 修改配置不起作用 2.Connection reset by peer: socket write error 3. redis-cli 查看中文乱码 1. 修改配置不起效果 我们修改了 ...
- Python 百分号字符串拼接
# %s可以接收一切 %d只能接收数字 msg = 'i am %s my hobby is %s' %('lhf','alex') print msg msg2 = 'i am %s my hobb ...
- 八皇后问题C语言解法
偶遇八皇后问题,随即自己写了一个仅供参考 #include<stdio.h> #include<math.h> #define SIZE 8 void Circumsribe( ...
- C语言复习:文件操作
文件操作专题 C语言文件读写概念 文件分类 按文件的逻辑结构: 记录文件:由具有一定结构的记录组成(定长和不定长) 流式文件:由一个个字符(字节)数据顺序组成 按存储介质: 普通文件:存储介质文件(磁 ...