在书Javascript: The good parts中,作者使用以下代码创建对象
if (typeof Object.create !== 'function') {
Object.create = function (o) {
var F = function () {};
F.prototype = o;
return new F();
};
}
var another_stooge = Object.create(stooge);
该函数用于创建对象,但它返回一个函数。 (参考 - 第3章,页码:22)
答案 0 :(得分:1)
javascript中的函数和对象没有区别吗?
函数是可以调用的对象,它们是用不同的语法创建的。
作者使用以下代码创建对象[...]
我们不应该再这样做了。 Object.create
已标准化,并在每个浏览器中实施。
无论如何,我们不应该通过查看这个可怕的polyfill来了解Object.create
的作用。我们应该将Object.create
视为langauge原语(如果需要,我们可以根据它来定义new
运算符。)
该函数用于创建一个对象,但它返回一个函数。
不,它没有。它不返回F
,而是return new F()
,这是调用到F
(作为构造函数)的结果。