博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数内部的两个特殊的对象:arguments和this
阅读量:5260 次
发布时间:2019-06-14

本文共 786 字,大约阅读时间需要 2 分钟。

arguments是一个类数组对象,包含着传入函数中的所有参数

在arguments中还存在着一个callee属性,该属性是一个指针,指向拥有这个arguments对象的函数。

下面是一个阶乘函数

function factorial(num){            if(num<=1){                return 1;            }else{                return num*factorial(num-1);            }        }

但是这个函数的执行与函数名紧紧耦合在一起

    Add Example 1    

使用arguments.callee可以消除这个麻烦

    Add Example 1    

函数内部的另一个特殊的对象是this,其行为与Java和C#中的this大致类似

换句话说:this引用的是函数据以执行的环境对象——或者也可以说是this值(当在网页的全局作用域中调用函数时,this对象引用的就是window)。

看下面的例子

    Add Example 1    

 

caller属性中保存着调用当前函数的函数的引用

如果是全局作用域中调用当前函数,它的值为null;

  Add Example 1     

第一个警告框中显示null,因为outer方法是在全局作用域调用的

第二个警告框中显示outer()函数的源代码。因为outer()调用了inner(),所以inner.caller就指向outer()。为了实现更加宽松的耦合,也可以通过arguments.callee.caller来访问相同的信息。

  Add Example 1     

转载于:https://www.cnblogs.com/jcbo/p/6744114.html

你可能感兴趣的文章
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
python之GIL release (I/O open(file) socket time.sleep)
查看>>
Excellent Strategies to Expand Clients
查看>>
【原创】Django-ORM基础
查看>>
mysql常用操作命令收集
查看>>
网络穿透
查看>>
2015/8/4 告别飞思卡尔,抛下包袱上路
查看>>
软件开发与模型
查看>>
Codeforces Round #306 (Div. 2) A
查看>>
ASP.NET 5 将于2016年一季度公布
查看>>
Objective-C sortUsingSelector方法
查看>>
161017、SQL必备知识点
查看>>
hdu 1541Stars
查看>>
王小花爱学习
查看>>
HTML DIV+CSS
查看>>
TFS增加dataserver
查看>>
kill新号专题
查看>>
网络操作系统第三章习题
查看>>
jquery datepicker 只显示年月
查看>>
MVC学习系列——Model验证扩展
查看>>