我的英语不太好,但我试着解释清楚。 我刚开始学习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两种类型的对象之间的区别。
感谢您的建议。
答案 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。