浅谈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 31 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
Jul 08 Javascript
js格式化金额可选是否带千分位以及保留精度
Jan 28 Javascript
Node.js 实现简单的接口服务器的实例代码
May 23 Javascript
详解Node.js 命令行程序开发教程
Jun 07 Javascript
使用axios实现上传图片进度条功能
Dec 21 Javascript
微信小程序上传图片实例
May 28 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
vuejs中监听窗口关闭和窗口刷新事件的方法
Sep 21 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
Mar 12 Javascript
用React Native制作一个简单的游戏引擎
May 27 Javascript
React + Threejs + Swiper 实现全景图效果的完整代码
Jun 28 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 强制下载文件代码
2010/10/24 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
排序算法之PHP版快速排序、冒泡排序
2014/04/09 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
checkbox 多选框 联动实现代码
2008/10/22 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
js获取 type=radio 值的方法
2014/05/09 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
javascript每日必学之循环
2016/02/19 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
2016/05/30 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
几种响应式文字详解
2017/05/19 Javascript
微信小程序 实现点击添加移除class
2017/06/12 Javascript
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
python图像处理之镜像实现方法
2015/05/30 Python
深入理解Python对Json的解析
2017/02/14 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
python2与python3共存问题的解决方法
2018/09/18 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
详解python中的lambda与sorted函数
2020/09/04 Python
python判断变量是否为列表的方法
2020/09/17 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
初中生期末考试的自我评价
2013/12/17 职场文书
产品质量保证书
2014/04/29 职场文书
先进基层党组织材料
2014/12/25 职场文书
个人党性分析总结
2015/03/05 职场文书
员工手册编写范本
2015/05/14 职场文书
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers