9.1.14 GetPrototypeFromConstructor ( constructor, intrinsicDefaultProto )
抽象操作 GetPrototypeFromConstructor 确定应该用于创建对应于特定构造函数的对象的 [[Prototype]] 值。 该值从构造函数的prototype属性(如果存在)中检索。 否则由 intrinsicDefaultProto 的内部名称用于 [[Prototype]]。 此抽象操作执行以下步骤:
- 断言:intrinsicDefaultProto 是一个 String 值,它是本规范的一个内在对象的名称。 相应的对象必须是旨在用作对象的[[Prototype]] 值的内在函数。
- 断言:IsCallable(constructor) 为 true。
- 使 proto 变为 ? Get(constructor, "prototype")。
- 如果 Type(proto) 不是 Object 类型,那么
a. 使 realm 变为 ? GetFunctionRealm(constructor)。 b. 使 proto 为 realm 的内在对象,名为 intrinsicDefaultProto。
5.返回 proto。
注意:如果构造函数不提供 [[Prototype]] 值,则使用的默认值从构造函数的 Realms 而不是从运行的执行上下文获取。