javaScript中的对象类型

javaScript中的对象类型,javascript,oop,javascript-objects,Javascript,Oop,Javascript Objects,我在js中创建了几个对象(a、b、c、…I),如下所示 var a = {x:1}; var b = function(y){this.x = y}; var c = new Object({x:1}); var d = new b(1); var e = b(1); var f = (y) => {return {x:y};}; var g = new f(1); // error var h = f(1); var i = new a();//error 请解释一下这些物品的区别是什

我在js中创建了几个对象(a、b、c、…I),如下所示

var a = {x:1};
var b = function(y){this.x = y};
var c = new Object({x:1});
var d = new b(1);
var e = b(1);
var f = (y) => {return {x:y};};
var g = new f(1); // error
var h = f(1);
var i = new a();//error
请解释一下这些物品的区别是什么? 为什么有些是无效的?
我期待一个与js中的原型相关的高级解释。

在您创建的所有对象上返回的对象之间没有显著差异,但是您创建它们的方式可能不同。在“new”关键字上,您必须调用构造函数:

function NewObject() {
    this.value = 0;
}
构造函数类似于其他OO语言中的类。构造函数是函数对象的一个实例,一个创建如下的对象:

let x = {};

是对象的实例,但不是函数的实例。

如果读取错误,您会看到
f不是构造函数。所以就是这样。