浅谈javascript 函数内部属性


Posted in Javascript onJanuary 21, 2015

        在函数内部有两个特殊的属性:arguments 和 this。arguments是一个类数组对象,包含传入的所有参数,
        但是这个对象还有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数。

        请看经典的阶乘函数例子:

        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);

            }

        }

        使用第一种方式是没有错的,但是耦合性太高,不太好,函数名改变之后,内部的函数名也要改变
        第二种方式就是低耦合的做法,无论函数名怎么改变都不会影响函数执行。

        this引用的是函数据以执行的环境对象,或者也可以说是this值

        window.color = "red";

        var o = {color: "blue"};

        function sayColor() {

            alert(this.color);

        }

        sayColor();//red

        o.sayColor = sayColor;

        o.sayColor();//blue

        caller属性,保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,它的值为Null

 function outer() {

            innter();

        }

        function innter(){

            //alert(innter.caller);//耦合性太高

            alert(arguments.callee.caller);

        }

        outer();

以上就是javascript函数内部属性的全部内容了,希望小伙伴们能够喜欢

Javascript 相关文章推荐
JavaScript 组件之旅(一)分析和设计
Oct 28 Javascript
Firefox下提示illegal character并出现乱码的原因
Mar 25 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
Feb 23 Javascript
js中判断文本框是否为空的两种方法
Jul 31 Javascript
javascript 主动派发事件总结
Aug 09 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
Nov 25 Javascript
Node.js模拟浏览器文件上传示例
Mar 26 Javascript
IE6已终止操作问题的2种情况及解决
Apr 23 Javascript
js实现拖拽效果(构造函数)
Dec 14 Javascript
浅谈使用React.setState需要注意的三点
Dec 18 Javascript
jQuery实现页码跳转式动态数据分页
Dec 31 jQuery
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
Jun 04 Javascript
浅谈javascript 函数属性和方法
Jan 21 #Javascript
html的DOM中document对象images集合用法实例
Jan 21 #Javascript
浅谈javascript面向对象程序设计
Jan 21 #Javascript
html的DOM中Event对象onabort事件用法实例
Jan 21 #Javascript
封装好的一个万能检测表单的方法
Jan 21 #Javascript
html的DOM中Event对象onblur事件用法实例
Jan 21 #Javascript
JS简单计算器实例
Jan 20 #Javascript
You might like
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
PHP实现适用于文件内容操作的分页类
2016/06/15 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
2016/07/12 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
php写app用的框架整理
2019/09/29 PHP
JS 动态加载脚本的4种方法
2009/05/05 Javascript
javascript 流畅动画实现原理
2009/09/08 Javascript
jQuery验证插件validation使用指南
2015/04/21 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
Django实现学员管理系统
2019/02/26 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
python之生成多层json结构的实现
2020/02/27 Python
Python转换字典成为对象,可以用&quot;.&quot;方式访问对象属性实例
2020/05/11 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
2020/06/15 Python
python文件编写好后如何实践
2020/07/07 Python
前端canvas动画如何转成mp4视频的方法
2019/06/17 HTML / CSS
俄罗斯皮肤健康中心:Pharmacosmetica.ru
2020/02/22 全球购物
新闻编辑自荐信
2013/11/03 职场文书
大众服装店创业计划书范文
2014/01/01 职场文书
cf搞笑广告词
2014/03/14 职场文书
复试通知单模板
2015/04/24 职场文书
入党转正申请报告
2015/05/15 职场文书
2015年底工作总结范文
2015/05/15 职场文书
信用卡收入证明范本
2015/06/12 职场文书
Python连续赋值需要注意的一些问题
2021/06/03 Python
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android