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

    翻译如下:

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

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

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

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

    可以在变量中存储。

    可以在数据结构中存储。

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

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

    可以当做参数

    可以当做返回值

    能够在运行时动态创建

    可以打印

    可以读取

    可以在不同的进程中传递

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

  • 相关阅读:
    Redis学习-发布/订阅
    Redis学习-Sentinel
    Redis学习-复制
    Redis学习-持久化
    Redis学习-Set
    Redis学习-SortedSet
    mac下使用apktool反编译
    ImageView setImageURI图片不改变NetWorkImageView 不显示的问题
    使用SharedPreference和对象流存储对象
    解决百度云推送通知,不显示默认Notification
  • 原文地址:https://www.cnblogs.com/Bryran/p/3965706.html
Copyright © 2011-2022 走看看