浅谈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 相关文章推荐
JS 字符串连接[性能比较]
May 10 Javascript
对xmlHttp对象方法和属性的理解
Jan 17 Javascript
jQuery读取和设定KindEditor值的方法
Nov 22 Javascript
JS获取节点的兄弟,父级,子级元素的方法
Jan 09 Javascript
jquery进行数组遍历如何跳出当前的each循环
Jun 05 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
Jul 17 jQuery
node-sass安装失败的原因与解决方法
Sep 04 Javascript
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
Dec 26 Javascript
vue 输入电话号码自动按3-4-4分割功能的实现代码
Apr 30 Javascript
javascript中正则表达式语法详解
Aug 07 Javascript
vue中利用three.js实现全景图的完整示例
Dec 07 Vue.js
浅谈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使用include 和require引入文件的区别
2017/02/16 PHP
Smarty3配置及入门语法
2017/02/22 PHP
php 类中的常量、静态属性、非静态属性的区别
2017/04/09 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
jQuery中$.click()无效问题分析
2015/01/29 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
vue中SPA单页面应用程序详解
2017/11/07 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
checkbox在vue中的用法小结
2018/11/13 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python实现在控制台输入密码不显示的方法
2015/07/02 Python
Python 中的 else详解
2016/04/23 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
实例讲解Python3中abs()函数
2019/02/19 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
如何现实servlet的单线程模式
2014/08/05 面试题
大一新生学期自我评价
2014/04/09 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
委托书格式
2014/08/01 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
现实表现证明材料
2015/06/19 职场文书