Javascript 关于js对象
我的英语不是很好,但我努力把自己解释清楚。 我刚开始学习JS对象,偶然发现了一个我无法理解的问题 我有一个简单的物体,像Javascript 关于js对象,javascript,Javascript,我的英语不是很好,但我努力把自己解释清楚。 我刚开始学习JS对象,偶然发现了一个我无法理解的问题 我有一个简单的物体,像 var cars = { doors: 4, wheels: 4 } 当我试图创建这样一个对象时: var Opel = new car() 我得到一个错误未捕获类型错误:对象不是函数 当我这样做的时候: Opel = Object.create(cars) function cars() {} 一切都很好 当我写一个像这样的东西时: Opel =
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中没有类的实例,只有从原型创建的对象才具有对象的函数(方法)和属性(实例变量)@Viktorinofoo={doors:4}
是对象的实例(对象文字)不确定PHP中的等价物是什么,但我认为它应该是一个数组array('doors'=>4)
,如果您需要创建许多具有大致相同特征的实例,您可以使用JavaScript中的构造函数或PHP.aaaa中的类。。现在我明白了。谢谢你的帮助!