浅谈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 相关文章推荐
DOM 脚本编程中的兄弟节点
Oct 31 Javascript
JavaScript中的异常捕捉介绍
Dec 31 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
Mar 04 Javascript
JavaScript实现的伸展收缩型菜单代码
Oct 14 Javascript
jQuery实现进度条效果代码
Dec 17 Javascript
bootstrap布局中input输入框右侧图标点击功能
May 16 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
Dec 31 Javascript
JavaScript中最常用的10种代码简写技巧总结
Jun 28 Javascript
vue2.0在table中实现全选和反选的示例代码
Nov 04 Javascript
解决vue build打包之后首页白屏的问题
Mar 06 Javascript
angular 数据绑定之[]和{{}}的区别
Sep 25 Javascript
使用node.JS中的url模块解析URL信息
Feb 06 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使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
JS Array对象入门分析
2008/10/30 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
用jquery方法操作radio使其默认选项是否
2013/09/10 Javascript
JavaScript中的object转换成number或string规则介绍
2014/12/31 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
python读取Android permission文件
2013/11/01 Python
python实现将元祖转换成数组的方法
2015/05/04 Python
django接入新浪微博OAuth的方法
2015/06/29 Python
Python连接mysql数据库的正确姿势
2016/02/03 Python
pandas 小数位数 精度的处理方法
2018/06/09 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
python解析xml简单示例
2019/06/21 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
使用Python将图片转正方形的两种方法实例代码详解
2020/04/29 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
销售代表求职自荐信
2013/10/01 职场文书
幼儿园开学报名通知
2015/07/16 职场文书
保护环境建议书作文500字
2015/09/14 职场文书