Symbol¶
Note
ECMAScript6
// символы не видимы для циклов
let s = Symbol('my_symbol');
let o = {};
o[s] = 's'
Object.keys(o);
// []
o.s
// error
o[s]
// 's'
Symbol('1') == Symbol('1')
// false
Symbol.for('1') == Symbol.for('1')
// true
- class
Symbol
()¶ var s = Symbol(); typeof s; // 'symbol'
try { let s = new Symbol(); } catch (e) { // Symbol is not a constructor }
-
Symbol.
hasInstance
¶
-
Symbol.
isContcatSpreadable
¶
-
Symbol.
iterator
¶ Символ для реализации интерфейса итератора
class Users { constructor(users) { this.users = users; } [Symbol.iterator]() { let i = 0; let users = this.users; return { next() { if (i < users.length) { return { done: false, value: users[i++], }; } return { done: true, } } } } } let users = Users([...]) users_iterator = users[Symbol.iterator]; users_iterator.next(); for (let user of users) { ... } [...users] // [...]
-
Symbol.
match
¶
-
Symbol.
prototype
¶
-
Symbol.
replace
¶
-
Symbol.
search
¶ Символ для реализации интерфейса поиска
class Product { constructor(type) { this.type = type; } [Symbol.search](string) { return string.indexOf(this.type) >= 0 ? 'FOUND': 'NOT_FOUND' } } let pr = Product('soap'); pr[Symbol.search]('barsoap'); // FOUND 'barsoap'.search(pr); // FOUND 'shampoo'.search(pr); // NOT_FOUND
-
Symbol.
species
¶
-
Symbol.
split
¶
-
Symbol.
toPrimitive
¶
-
Symbol.
toStringTag
¶
-
Symbol.
unscopables
¶
-
for
(string)¶ Создает символ глобально
Note
ECMAScript6
-