浅谈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动画对象支持加速、减速、缓入、缓出的实现代码
Sep 30 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
Mar 13 Javascript
JS基于Ajax实现的网页Loading效果代码
Oct 27 Javascript
详解WordPress开发中get_current_screen()函数的使用
Jan 11 Javascript
jQuery中text() val()和html()的区别实例详解
Jun 28 Javascript
从0开始学Vue
Oct 27 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
Feb 15 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
Jan 04 Javascript
详解Node 定时器
Feb 26 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
Aug 14 Javascript
关于vue里页面的缓存详解
Nov 04 Javascript
JavaScript实现网页下拉菜单效果
Nov 20 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
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
PHP新手上路(二)
2006/10/09 PHP
php中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
php htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
JavaScript游戏之优化篇
2010/11/08 Javascript
JavaScript 代码压缩工具小结
2012/02/27 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
HEMA法国:荷兰原创设计
2019/02/21 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
最新教师自我评价分享
2013/11/12 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
商场周年庆活动方案
2014/08/19 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
出纳岗位职责范本
2015/03/31 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
Nginx缓存设置案例详解
2021/09/15 Servers