Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于js对象_Javascript - Fatal编程技术网

Javascript 关于js对象

Javascript 关于js对象,javascript,Javascript,我的英语不是很好,但我努力把自己解释清楚。 我刚开始学习JS对象,偶然发现了一个我无法理解的问题 我有一个简单的物体,像 var cars = { doors: 4, wheels: 4 } 当我试图创建这样一个对象时: var Opel = new car() 我得到一个错误未捕获类型错误:对象不是函数 当我这样做的时候: Opel = Object.create(cars) function cars() {} 一切都很好 当我写一个像这样的东西时: Opel =

我的英语不是很好,但我努力把自己解释清楚。 我刚开始学习JS对象,偶然发现了一个我无法理解的问题

我有一个简单的物体,像

var cars = {
   doors: 4,
   wheels: 4
}
当我试图创建这样一个对象时:

   var Opel = new car()
我得到一个错误
未捕获类型错误:对象不是函数

当我这样做的时候:

Opel = Object.create(cars)
 function cars() {}
一切都很好

当我写一个像这样的东西时:

Opel = Object.create(cars)
 function cars() {}
用new声明对象的方法可以正常工作。 我不明白这两种书写方式的区别


谢谢你的建议。

你不明白

要定义类,请创建一个简单函数,如:

function Car(){
   this.doors = 4; //For instance, not really necessary 
}
您可以在函数中设置此
的属性

然后定义一个原型,类“Car”的每个对象都将具有所有这些属性(和“方法”):


有关更多信息,请参阅。

请继续阅读JS教程,它会向您提供。同时,SO并不是用来代替你自己学习语言的。我建议你阅读MDN JavaScript指南:,它解释了创建对象的所有不同方式。我明白,当我像函数一样编写它时,它就是构造函数。它不同于PHP,但是当我用new声明它时,为什么没有它会出现错误呢?因为它没有构造函数?也许下面的答案可以帮助你。它回答了构造函数的功能和原型的功能:只能使用
new
调用函数。错误告诉您,
car
不是一个函数,因此您不能用
new
调用它。谢谢。还有一个问题。当我创建一个像var foo={}这样的对象时,这意味着什么?我来自PHP,在js中,它和我一样不同see@Viktorino您可以在PHP中创建一个空对象,比如
newstdclass()
,或者创建一个空的关联数组。在JavaScript中没有类的实例,只有从原型创建的对象才具有对象的函数(方法)和属性(实例变量)@Viktorino
foo={doors:4}
是对象的实例(对象文字)不确定PHP中的等价物是什么,但我认为它应该是一个数组
array('doors'=>4)
,如果您需要创建许多具有大致相同特征的实例,您可以使用JavaScript中的构造函数或PHP.aaaa中的类。。现在我明白了。谢谢你的帮助!