前提:我尝试使用abbandon构造函数模式
正如您在此处console.log()
看到的那样
//Constructor pattern
function F(){}
F.prototype.foo = null;
console.log(new F());
//Object create pattern
var FPrototype = {};
FPrototype.foo = null;
console.log(Object.create(FPrototype))
由Object.create
API创建的对象具有引用原型为__proto__
的{{1}}属性,而构造函数创建的对象具有引用原型作为名称的Object
prop构造函数。
我认为这种行为试图模拟强类型的lang,假设你的构造函数定义了一个由构造函数名称本身标识的新类型。
那就是说,当我的原型链增长时,我发现通过名称/“类型”识别不同的原型是非常有用的,那么有没有办法使用__proto__
而不是构造函数来正确地使用它?