浅谈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获取TreeView控件选中节点的Text和Value值的方法
Nov 24 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
Nov 25 Javascript
Javascript 实现复制(Copy)动作方法大全
Jun 20 Javascript
javascript学习笔记(一)基础知识
Sep 30 Javascript
Node.js静态文件服务器改进版
Jan 10 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
Mar 05 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
Sep 04 Javascript
js自制图片放大镜功能
Jan 24 Javascript
input输入框内容实时监测(附代码)
Aug 15 Javascript
JS中双击和单击事件冲突的解决方法
Apr 09 Javascript
解决vue项目获取dom元素宽高总是不准确问题
Jul 29 Javascript
JavaScript基于SVG的图片切换效果实例代码
Dec 15 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代码
2008/09/10 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
php array_reverse 以相反的顺序返回数组实例代码
2017/04/11 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
一个用js实现控制台控件的代码
2007/09/04 Javascript
javascript动态加载二
2012/08/22 Javascript
javascript常用对话框小集
2013/09/13 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
基于jQuery实现的QQ表情插件
2015/08/25 Javascript
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
使用vue实现grid-layout功能实例代码
2018/01/05 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
[06:48]DOTA2-DPC中国联赛2月26日Recap集锦
2021/03/11 DOTA
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
面向初学者的Python编辑器Mu
2018/10/08 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
2020/06/29 Python
深入了解Python enumerate和zip
2020/07/16 Python
GLAMGLOW格莱魅美国官网:美国知名的面膜品牌
2016/12/31 全球购物
2016春节慰问信范文
2015/03/25 职场文书
追讨欠款律师函
2015/06/24 职场文书
安全教育日主题班会
2015/08/13 职场文书
Python几种酷炫的进度条的方式
2022/04/11 Python