博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20170605-函数的arguments
阅读量:6815 次
发布时间:2019-06-26

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

arguments

arguments是一个类数组对象,包含着传入函数中的所有参数。虽然arguments的主要用途是保存函数参数,但是这个对象还有一个名叫callee的属性,该属性是一个指针,指明拥有这个arguments对象的函数。

例子:

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

上面的代码实现了阶乘函数的递归实现,但是这个函数的执行与函数名factorial紧紧耦合在了一起,如果出现下面这样的情况,就会出问题:

var fn = factorialfactorial = nullfn(10)  // error: factorial is not a function

为了解决这种问题,可以使用arguments的callee属性:

function factorial(num){    if(num<=1){        return 1    }else {        return num * arguments.callee(num-1)    }}

通过使用arguments对象的callee属性,无论引用函数使用的是什么名字,都可以保证正常完成递归调用。

转载地址:http://ovdzl.baihongyu.com/

你可能感兴趣的文章
Nginx常用命令
查看>>
TWaver GIS在电信中的使用
查看>>
几款程序员常用的辅助编程工具
查看>>
MySQL5.7使用Notifier启动、停止服务时出现的问题
查看>>
今天用java弄个json数据交换接口,个人感觉这样实现省事实力。
查看>>
color值
查看>>
mybatis 多表关联查询
查看>>
Android RxJava:一文带你全面了解 背压策略
查看>>
5 Servlet
查看>>
百度创始人李彦宏:要做最好的中文搜索引擎
查看>>
3.26作业
查看>>
Python里的append和extend
查看>>
cut命令
查看>>
JavaScript强化教程-cookie对象
查看>>
MEMCACHE常用的命令
查看>>
docker 基础
查看>>
Angular基础(七) HTTP & Routing
查看>>
使用Freeline提高你的工作效率
查看>>
FTP服务器
查看>>
爬百度新闻
查看>>