代码之家  ›  专栏  ›  技术社区  ›  overexchange

理解符号函数构造函数的成员

  •  -6
  • overexchange  · 技术社区  · 6 年前

    在控制台上,

    #> window.Symbol
    ƒ Symbol() { [native code] }
    

    他说 window.Symbol 是函数构造函数的名称( F ).这也有一个原型关系( __proto__ )使用 Function.prototype

    #> window.Symbol.apply
    ƒ apply() { [native code] }
    

    他说, apply 是成员函数的名称( F )共个 作用原型 可访问为 Symbol.apply 由于原型关系( __原型__ )。


    一言以蔽之,

    #> Object.prototype.toString.call(Symbol.iterator)
    "[object Symbol]"
    
    #> window.Symbol.iterator
    Symbol(Symbol.iterator)
    

    什么是 Symbol(Symbol.iterator) 意思是无法获取此语法

    2 回复  |  直到 6 年前
        1
  •  1
  •   Paul    6 年前

    Symbol.iterator 是众多 well-known Symbols

    窗户上写着。符号是函数构造函数(f)的名称。

    符号不是构造函数;它必须在没有 new 。但它是一个函数,函数可以有属性。

    象征迭代器 只是对特定符号的引用,与这样做没有太大区别 X.first 引用的特定实例 X :

    function X ( ) {
        this.foo = 'bar';
    }
    
    X.first = new X;
    
    console.log( X.first );
        2
  •  0
  •   Vasan    6 年前

    Here 你去吧。这就是Symbol toString() 实现(并在控制台中打印),而不是任何特殊语法。