1、生成器对象是由一个generator function返回的,并且它符合可迭代协议和迭代器协议
2、普通函数 VS 生成器函数
(1)生成器函数 [[IsGenerator]]:true
(2)生成器函数执行,函数fun并没有执行,因为没有输出11
(3)typeof输出也是function
(4)普通函数是 Function 的实例,普通函数.proto===Function.prototype
(5)生成器函数是 GeneratorFunction 的实例 生成器函数.proto===GeneratorFunction.prototype -> GeneratorFunction.prototype.proto===Function.prototype
(6)fun在Function的原型链上
(7)检测类型 原型上的Symbol.toStringTag是GeneratorFunction
(8) 生成器函数不能被new
(9)我们在func的原型上面随便加一个属性,用来让显示明显;
可以看到itor的__proto__找到了func的原型,说明itor是func的一个实例;说明func不被new 就可以返回一个实例(工厂模式)jQuery也是这样
总结: (1)生成器函数本身就是一个构造函数;不能被new执行,但是返回的结果就是一个实例