zoukankan      html  css  js  c++  java
  • Javascript中的"函数是第一类对象(first-class object)"

    本身这句话很好解释,函数有两个主要特点,援引自 陈新 译的《JavaScript模式》:

    1.函数是第一类对象:

    • 函数可以在运行时动态创建,还可以在程序执行过程中创建。
    • 函数可以分配变量,可以将它们的引用复制到其他变量,可以被扩展,此外,除少数特殊情况外,函数还可以被删除。
    • 可以作为参数传递给其他函数,并且还可以有其他函数返回。
    • 函数可以有自己的属性和方法。

    2.函数提供了作用域

    在JavaScript中,没有使用花括号{}语法来定义局部变量的作用域,也就是说,块并不能创建作用域。这也就意味着if或for的表达式中声明的变量会越级上访。所以为了防止命名空间污染,自执行匿名函数大行其道。


    在stackoverflow http://stackoverflow.com/questions/245192/what-are-first-class-objects

    翻译如下:

    简单的说,第一类对象就是说在使用上和其他对象没有任何区别。

    一个第一类对象就是一个能够动态创建,销毁,传递,返回的实体,和编程语言中的其他变量拥有同等地位。

    第一类对象拥有以下特征:

    匿名字面量被当做是表达式。

    可以在变量中存储。

    可以在数据结构中存储。

    拥有唯一标识(可以通过函数名进行区分)

    能够和其他实体进行是否相同的比较

    可以当做参数

    可以当做返回值

    能够在运行时动态创建

    可以打印

    可以读取

    可以在不同的进程中传递

    可以在运行进程外进行存储

  • 相关阅读:
    manjora20安装搜狗输入法
    manjora20使用体验
    deepin20体验
    deepin20搜狗输入法使用
    deepin20使用snap并设置代理
    C#服务器端使用office组件
    华为多屏互动看学英语
    ThinkPad S5立体声混响以及语音识别
    mate10碎屏机当成小电脑使用尝试
    刷机错误ERROR:STATUS_BROM_CMD__FAIL
  • 原文地址:https://www.cnblogs.com/Bryran/p/3965706.html
Copyright © 2011-2022 走看看