Понимание членов Symbol - конструктора функций - PullRequest
0 голосов
/ 11 мая 2018

на консоли,

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

говорит, что window.Symbol - это имя конструктора функции ( f ). Это также имеет прототипическое отношение (__proto__) с Function.prototype

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

говорит, что apply - это имя функции-члена ( f ) из Function.prototype, доступной как Symbol.apply из-за прототипного отношения (__proto__).


Сказав,

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

#> window.Symbol.iterator
Symbol(Symbol.iterator)

Что означает Symbol(Symbol.iterator)? Не удалось получить этот синтаксис

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Здесь вы идете. Это просто способ реализации toString() Symbol (который, в свою очередь, выводится на консоль), а не какой-либо специальный синтаксис.

0 голосов
/ 11 мая 2018

Symbol.iterator является одним из многих известных символов .

говорит, что window.Symbol - это имя конструктора функции (f).

Символ не является конструктором;он должен быть вызван без new.Однако это функция, и функции могут иметь свойства.

Symbol.iterator - это просто ссылка на конкретный символ, мало чем отличающаяся от этой, чтобы заставить X.first ссылаться на конкретный экземпляр X:

function X ( ) {
    this.foo = 'bar';
}

X.first = new X;

console.log( X.first );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...