码迷,mamicode.com
首页 > 其他好文 > 详细

我对arguments.callee的理解

时间:2019-10-24 09:19:41      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:ima   fun   例子   帮助   code   用途   nts   网上   有一个   

基本理解:

你怎么看待一个函数呢?又如何看待一个函数对象呢?函数和Function之间的关系到底是什么?我觉得理解这些对理解arguments.callee有所帮助。

先说说auguments.callee是什么:它是一个指针,它指向当前函数,这个函数没有当前的参数环境,是一个纯净的Function实例,就好比一个厕所,对象只是去厕所撒尿,撒完尿它会出来,厕所还是厕所技术图片

案例说明:

网上找到一个例子,可以很好说明它的用途,怎么看耦合性高低,假如我这样调用 let copy = factorial;    factorial = null;    copy(3);  一般写法结果是错误的,而升级写法是正确的。使用它还有一个作用,可以直接从函数中获取原型对象。

//一般的写法,缺点耦合性高(红色部分)
function
factorial(num){ if (num <=1) { return 1; } else { return num * factorial(num-1) } }
//升级写法,优点耦合性低
function
factorial(num){ if (num <=1) { return 1; } else { return num * arguments.callee(num-1); } }

 

你学到东西了,记得点赞告诉我。

 

我对arguments.callee的理解

标签:ima   fun   例子   帮助   code   用途   nts   网上   有一个   

原文地址:https://www.cnblogs.com/pecool/p/11730101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!