javascript文字初始化循环
我有一个对象,它有几个属性是在创建对象时设置的 这个对象最近改为对象文字符号,但我遇到了一个在网上搜索并没有发现的问题 简单地说,我需要这样做:javascript文字初始化循环,javascript,literals,Javascript,Literals,我有一个对象,它有几个属性是在创建对象时设置的 这个对象最近改为对象文字符号,但我遇到了一个在网上搜索并没有发现的问题 简单地说,我需要这样做: Star = function(_id, _x, _y, _n, _o, _im, _c, _b, _links) { var self = { id: _id, // other properties links: [], for (var i=0,j=0;i<8;i++)
Star = function(_id, _x, _y, _n, _o, _im, _c, _b, _links) {
var self = {
id: _id,
// other properties
links: [],
for (var i=0,j=0;i<8;i++) { //<- doesn't like this line
var k = parseInt(_links[i]);
if (k > 0) {
this.links[j++] = k;
}
},
// other methods
};
return self;
};
Star=function(_id,_x,_y,_n,_o,_im,_c,_b,_links){
var self={
id:_id,
//其他属性
链接:[],
对于(var i=0,j=0;i您不能。对象表示法不允许这样做。但是,您可以在初始化对象后添加属性
顺便说一句,self
已经是一个已定义的对象,它是窗口对象的别名。当您定义一个名为self的临时对象时[因此,您没有摆脱window.self],这不是您应该做的事情。请将self
当作一个关键字,并且您当前使用它是非法的
您可以使用匿名函数动态创建阵列:
Star = function(_id, _x, _y, _n, _o, _im, _c, _b, _links) {
var self = {
id: _id,
// other properties
links: (function() {
var a = [];
for (var i=0;i<8;i++) {
var k = parseInt(_links[i]);
if (k > 0) {
a.push(k);
}
}
return a;
})(),
// other methods
};
return self;
};
Star=function(_id,_x,_y,_n,_o,_im,_c,_b,_links){
var self={
id:_id,
//其他属性
链接:(函数(){
var a=[];
对于(变量i=0;i 0){
a、 推(k);
}
}
返回a;
})(),
//其他方法
};
回归自我;
};
您可以在定义文字后执行此操作:
Star = function(_id, _x, _y, _n, _o, _im, _c, _b, _links) {
var self = {
id: _id,
// other properties
links: [],
// other methods
};
for (var i=0,j=0;i<8;i++) {
var k = parseInt(_links[i]);
if (k > 0) {
self.links[j++] = k;
}
}
return self;
};
Star=function(_id,_x,_y,_n,_o,_im,_c,_b,_links){
var self={
id:_id,
//其他属性
链接:[],
//其他方法
};
对于(VarI=0,j=0;I0){
self.links[j++]=k;
}
}
回归自我;
};
对于此特定示例,您可以使用匿名函数,如下所示:
Star = function(_id, _x, _y, _n, _o, _im, _c, _b, _links) {
var self = {
id: _id,
// other properties
links: (function(){
var links = [];
for (var i=0;i<8;i++) {
var k = parseInt(_links[i]);
if (k > 0) {
links.push(k);
}
}
return links;
})(),
// other methods
};
return self;
};
Star=function(_id,_x,_y,_n,_o,_im,_c,_b,_links){
var self={
id:_id,
//其他属性
链接:(函数(){
var-links=[];
对于(变量i=0;i 0){
链接。推送(k);
}
}
返回链接;
})(),
//其他方法
};
回归自我;
};