函数内部属性

arguments

  1. 类数组对象,包含传入函数中的所有参数
  2. arguments的主要用途是保存函数参数,但这个对象还有一个名叫 callee 的属性
  3. 该属性是一个指针,指向拥有这个argument对象的函数

经典阶乘Demo

        /**
         * @description 经典的阶乘函数
         * @param {Number}
         * 存在的问题
         * 执行函数与函数名factorial 紧紧耦合
         */
        function factorial(num) {
            if (num <= 1) {
                return 1;
            } else {
                return num * factorial(num - 1);
            }
        }

消除函数的强耦合

        /**
         * @description 使用arguments.callee
         * @param {Number}
         * 消除上面的紧密耦合现象
         */
        function factorial(num) {
            if (num <= 1) {
                return 1;
            } else {
                return num * arguments.callee(num - 1);
            }
        }

this

  1. 函数执行的环境对象
  2. 全局中this的引用对象是window
        /**
         * @description this对象用例
         */
        var color = "red";
        var o = { color: "blue" };

        function sayColor() {
            alert(this.color);
        }

        sayColor();  //red

        o.sayColor = sayColor;
        o.sayColor();   //blue

caller

        /**
         * caller
         * @return {EventString} 返回调用函数结构体
         */
        function outer() {
            inner();
        }

        function inner() {
            alert(inner.caller)
        }

        outer()

        /**
         * @description 松散耦合
         * arguments.callee.caller
         */
        function outer() {
            inner();
        }

        function inner() {
            alert(arguments.callee.caller)
        }

        outer()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 10,147评论 0 5
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,461评论 0 4
  • arguments属性: arguments是一个类似数组的对象,存储的是传递给函数的参数,而不局限于函数声明所定...
    frankisbaby阅读 936评论 0 0
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 10,640评论 0 21
  • 想着2015年计划和目标实施结果的惨状,决心2016年只定一个目标——存下7w元。7月份换了新工作,也重新捡起了写...
    斐玉蓝荷的梦想书房阅读 1,345评论 0 1