javascript中的函数和对象之间没有区别吗?

时间:2016-05-18 17:35:13

标签: javascript javascript-objects

在书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)

1 个答案:

答案 0 :(得分:1)

  

javascript中的函数和对象没有区别吗?

函数是可以调用的对象,它们是用不同的语法创建的。

  

作者使用以下代码创建对象[...]

我们不应该再这样做了。 Object.create已标准化,并在每个浏览器中实施。

无论如何,我们不应该通过查看这个可怕的polyfill来了解Object.create的作用。我们应该将Object.create视为langauge原语(如果需要,我们可以根据它来定义new运算符。)

  

该函数用于创建一个对象,但它返回一个函数。

不,它没有。它不返回F,而是return new F(),这是调用F(作为构造函数)的结果。