我想创建一个复合对象(例如device
),它将其他对象作为属性(例如position
)。
这可以通过使用构造函数在JavaScript中实现吗?
var pos = new position(23,10,15);
var dev = new device(01,"mobile",pos);
//device obj constructor
function device(id, type, position) {
this.id=id;
this.type=type;
this.position = {position.lat, position.lon, position.alt};
}
//position obj constructor
function position(lat,lon,alt) {
this.lat=lat;
this.lon=lon;
this.alt=alt;
}
我收到错误“SyntaxError:Unexpected token。”
答案 0 :(得分:2)
是的,这是可能的。您收到SyntaxError,因为您有语法错误。您可以嵌套这样的对象:
device = {
id: 43,
type: 34,
position: {
lat: 2,
lon: 4,
alt: 343
}
};
如果要将整个对象分配给变量,那么您的函数应如下所示:
function device(id, type, position) {
this.id=id;
this.type=type;
this.position = position;
}
但是如果你只想分配对象的一些变量,你应该这样做:
function device(id, type, position) {
this.id=id;
this.type=type;
this.position = {
alt: position.alt,
lon: position.lon,
lat: position.alt
};
}
答案 1 :(得分:1)
替换此行
this.position = {position.lat, position.lon, position.alt};
用这个
this.position = position