Я играю с генераторами JavaScript и у меня есть 2 вопроса, основанных на следующем коде и его выводе:
const a = function*(){}(); // Object [Generator] {}
const b = a.__proto__; // Object [Generator] {}
const c = b.__proto__; // Object [Generator] {}
const d = c.__proto__; // {}
const e = d.__proto__; // {}
const f = e.__proto__; // null
console.log(a, b, c, d, e, f);
Вопрос 1
Кажется, каждый объект генератора имеет свои собственный уникальный прототип, и все они имеют общий прототип:
const x = function*(){}();
const y = x.__proto__;
const z = y.__proto__;
console.log(b === y); // false
console.log(c === z); // true
Правильно ли мое понимание выше?
Вопрос 2
Поскольку f
это null
, e
вероятно Object.prototype
:
console.log(e === Object.prototype); // true
Однако я не могу понять, что такое d
. Есть ли Something.prototype
, равное d
?