V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
xi_lin

才意识到 JS 的 function 是个对象

  •  
  •   xi_lin · Aug 24, 2016 · 2611 views
    This topic created in 3536 days ago, the information mentioned may be changed or developed.
    之前一直只当成是 primitive value 了
    其实是个对象,可以当做{}来使用的特殊的函数对象

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
    11 replies    2016-08-26 12:09:38 +08:00
    FreeDog
        1
    FreeDog  
       Aug 25, 2016
    Python 、 Java 中 Function 属于 First-class object ,即 First-class function ( https://en.wikipedia.org/wiki/First-class_function)
    FreeDog
        2
    FreeDog  
       Aug 25, 2016
    @FreeDog JavaScript 。。。打错了
    hronro
        3
    hronro  
       Aug 25, 2016
    JS 中万物皆对象的嘛。即使是数字、布尔值这种基本类型的数据,实际上在语言内部也会把这些基本类型的数据转换成对象之后再使用。
    xi_lin
        4
    xi_lin  
    OP
       Aug 25, 2016
    @FreeDog 嗯,知道是一等公民,没想到是个 object
    xi_lin
        5
    xi_lin  
    OP
       Aug 25, 2016
    @hronro 还是有点不一样。数字变量无法直接当成对象使用, function 却可以
    Fishdrowned
        6
    Fishdrowned  
       Aug 25, 2016
    @xi_lin 数字可以直接当对象使用,试一下:

    1..toPrecision(2);
    xi_lin
        7
    xi_lin  
    OP
       Aug 25, 2016
    @Fishdrowned
    ..是什么语法呢?
    我前面那个单对象使用说法不准确,想表达的其实是当 map 使用
    比如
    ```
    var a = function() {console.log('a')};
    a.test = 'abc';
    console.log(a.test); // abc

    var b = 1;
    b.test = 'abc';
    console.log(b.test); // undefined
    ```
    lxrmido
        8
    lxrmido  
       Aug 26, 2016
    @xi_lin
    1.表示 1.0
    因为数字后面跟随.表示小数点,所以要再加一个点,等同于:
    1.0.toPrecision(2);
    xi_lin
        9
    xi_lin  
    OP
       Aug 26, 2016
    @lxrmido 为啥浮点数可以直接用 toPrecision 而整数不行呢? toPrecision 不是 Number 的自带方法么?
    lxrmido
        10
    lxrmido  
       Aug 26, 2016
    @xi_lin
    整数不是不可以,而是根据 JS 的语法,解析器会把整数后接的.当做小数点。
    xi_lin
        11
    xi_lin  
    OP
       Aug 26, 2016
    @lxrmido 了解了,谢谢!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2494 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 05:33 · PVG 13:33 · LAX 22:33 · JFK 01:33
    ♥ Do have faith in what you're doing.