浅谈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 相关文章推荐
用jquery来定位
Feb 20 Javascript
javascript获取当前日期时间及其它操作函数
Jan 11 Javascript
jquery二级导航内容均分的原理及实现
Aug 13 Javascript
JS表单验证的代码(常用)
Apr 08 Javascript
JS修改地址栏参数实例代码
Jun 14 Javascript
JavaScript-html标题滚动效果的简单实现
Sep 08 Javascript
javascript 判断页面访问方式电脑或者移动端
Sep 19 Javascript
EasyUI Combobox设置默认值 获取text的方法
Nov 28 Javascript
详解JSONObject和JSONArray区别及基本用法
Oct 25 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
Apr 09 Javascript
js实现按钮开关单机下拉菜单效果
Nov 22 Javascript
如何进行微信公众号开发的本地调试的方法
Jun 16 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
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
Some tips of wmi scripting in jscript (1)
2007/04/03 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
js canvas实现画图、滤镜效果
2018/11/27 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
Python发送Email方法实例
2014/08/21 Python
python对html代码进行escape编码的方法
2015/05/04 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
python梯度下降法的简单示例
2018/08/31 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
人力资源管理专业学生自我评价
2013/11/20 职场文书
现金会计岗位职责
2013/12/05 职场文书
实习教师自我鉴定
2013/12/12 职场文书
大学生创业项目方案
2014/03/08 职场文书
认购协议书范本
2014/04/22 职场文书
给老婆的保证书
2015/01/16 职场文书
校园之声广播稿
2015/08/18 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
初二数学教学反思
2016/02/17 职场文书
Redis数据结构之链表与字典的使用
2021/05/11 Redis
一篇文章弄懂Python中的内建函数
2021/08/07 Python
Mysql开启外网访问
2022/05/15 MySQL