关于js对象

时间:2014-08-23 19:20:23

标签: javascript

我的英语不太好,但我试着解释清楚。 我刚开始学习JS对象,偶然发现了我无法理解的问题。

我有一个像

这样的简单对象
var cars = {
   doors: 4,
   wheels: 4
}

当我尝试创建这样的对象时:

   var Opel = new car()

我收到了错误Uncaught TypeError: object is not a function

当我这样做的时候:

Opel = Object.create(cars)
一切都很好。

当我写一个像这样的对象时:

 function cars() {}

使用new声明对象的方法,正常工作。 我无法理解thous两种类型的对象之间的区别。

感谢您的建议。

1 个答案:

答案 0 :(得分:1)

你不明白原型正确。

要定义一个类,您可以创建一个简单的函数,例如:

function Car(){
   this.doors = 4; //For instance, not really necessary 
}

您可以在函数中设置this的属性。

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

Car.prototype = {
   doors: 4, //we don't need to set this again if we already did in the constructor, but I'll leave if it anyway
   wheels: 4
}

有关详情,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript