浅谈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 相关文章推荐
使用Math.floor与Math.random取随机整数的方法详解
May 07 Javascript
js获取当前地址 JS获取当前URL的示例代码
Feb 26 Javascript
如何用jquery控制表格奇偶行及活动行颜色
Apr 20 Javascript
JavaScript实现的图像模糊算法代码分享
Apr 22 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
Dec 29 Javascript
Jquery中$.post和$.ajax的用法小结
Apr 28 Javascript
JavaScript制作简单的框选图表
May 15 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
Oct 27 Javascript
改变layer confirm弹窗按钮的颜色方法
Sep 12 Javascript
jquery选择器和属性对象的操作实例分析
Jan 10 jQuery
javascript实现时间日期的格式化的方法汇总
Aug 06 Javascript
JS实现小米轮播图
Sep 21 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
PHP文件上传实例详解!!!
2007/01/02 PHP
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
2009/09/30 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
jQuery 三击事件实现代码
2013/09/11 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
Vue父组件调用子组件事件方法
2018/02/23 Javascript
Vue验证码60秒倒计时功能简单实例代码
2018/06/22 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
python中黄金分割法实现方法
2015/05/06 Python
Python素数检测的方法
2015/05/11 Python
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
Django logging配置及使用详解
2019/07/23 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
美国知名户外用品畅销中心:Sierra Trading Post
2016/07/19 全球购物
表达自我的市场:Society6
2018/08/01 全球购物
碧欧泉Biotherm加拿大官方网站:法国高端护肤品牌
2019/10/18 全球购物
2014中考励志标语
2014/06/05 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
建党伟业的观后感
2015/06/01 职场文书
圣诞晚会主持词
2015/07/01 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript
用Java实现简单计算器功能
2021/07/21 Java/Android