这可能吗?
我的想法:原型本质上是构造函数的属性(无论是本机构造函数,如Function,String或Object,还是您自己的自定义构造函数),只有'new'关键字能够利用构造函数及其原型来创建对象
我错过了什么吗?
CMS*_*CMS 12
你是对的,但现在在ECMAScript第5版中,该Object.create方法能够使用另一个对象作为原型创建对象实例:
var proto = {foo: 1};
var obj = Object.create(proto);
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,obj将创建它,它将包含proto对[[Prototype]]内部属性的引用,并且:
obj.foo; // 1
obj.hasOwnProperty('foo'); // false
Run Code Online (Sandbox Code Playgroud)
这个方法来自2009年12月批准的新规范,到目前为止我已经看到Mozilla JavaScript 1.9.3实现了.
现在你可以像Douglas Crockford所建议的那样模仿那个方法的行为:
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
Run Code Online (Sandbox Code Playgroud)