我刚刚观看了 Douglas Crockford 的介绍性 JavaScript讲座,他在其中提到了一个名为的函数,该函数object
应该用于创建一个链接到作为其参数的对象的新对象。我猜他的意思是如果我说
var objB = object(objA);
的objB
内部[[prototype]]
参考设置为objA
,尽管他没有明确地这样表述。
另一方面,我读过他的书,他根本没有提到这样的函数,而是提出了他自己的从原型创建对象的方法,定义了以下函数:
Object.create = function(o) {
var F = function() {};
F.prototype = o;
return new F();
}
本质上利用了操作符的行为,它将新创建的对象new
的内部链接设置为构造函数的属性指向的任何内容。[[prototype]]
prototype
我的问题是他为什么要省略内置函数并发明自己的方式来做同样的事情。以前的object
函数调用真的等同于
var objB = Object.create(objA);
还是有一些细微的差别?