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

javascript中的函数和对象之间没有区别吗?,javascript,javascript-objects,Javascript,Javascript Objects,在本书中,作者使用以下代码创建对象 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) javasc

在本书中,作者使用以下代码创建对象

 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)

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

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

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

我们不应该再这样了。在几乎每个浏览器中都实现了标准化和实施

无论如何,我们不应该试图通过查看这个可怕的多边形填充来理解
Object.create
的功能。我们应该将
Object.create
视为langauge原语(如果需要,我们可以根据它定义
new
操作符)

该函数旨在创建一个对象,但它返回一个函数


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

您如何确定它返回函数?因为
Object.create
返回传递给它的对象的新实例。JavaScript中的所有函数都是对象。正如Marcus所说,所有函数都是对象,但并非所有对象都是函数。使用文字语法创建的对象不是函数。现在在ES6中,我们有了一个显然不是函数的类。@MikeMcCaughan
Object.creare
返回
F()
这是一个函数否,它返回
new F()
。请阅读下面的内容。