浅谈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 相关文章推荐
JQuery 写的个性导航菜单
Dec 24 Javascript
文本框获得焦点和失去焦点的判断代码
Mar 18 Javascript
jQuery层次选择器选择元素使用介绍
Apr 18 Javascript
清除div下面的所有标签的方法
Feb 17 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
Dec 15 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
Nov 02 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
Nov 17 Javascript
jQuery将表单序列化成一个Object对象的实例
Nov 29 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
Apr 13 Javascript
使用react-router4.0实现重定向和404功能的方法
Aug 28 Javascript
JS设计模式之策略模式概念与用法分析
Feb 05 Javascript
微信小程序实现星星评分效果
Nov 01 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 urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
js word表格动态添加代码
2010/06/07 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
python使用cPickle模块序列化实例
2014/09/25 Python
理解python正则表达式
2016/01/15 Python
python实现数据图表
2017/07/29 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
python如何在列表、字典中筛选数据
2018/03/19 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
Python绘图实现显示中文
2019/12/04 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
Flask模板引擎Jinja2使用实例
2020/04/23 Python
详解Python 最短匹配模式
2020/07/29 Python
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
结构工程研究生求职信
2013/10/13 职场文书
详细的大学生创业计划书模板
2014/01/27 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
交通安全责任书范本
2014/07/24 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python
Python OpenCV形态学运算示例详解
2022/04/07 Python