[英]In javascript, creating a class instance in a for loop
我有以下类别,希望为其创建一系列实例:
function rashnik(size, name) {
var img = document.createElement('img');
img.src = "pics/"+name+".jpg";
img.height = size;
img.width = size;
img.id = name;
d = 300-size;
img.style.marginBottom = d/2;
img.style.marginLeft = 50;
var gal = document.getElementById("gallery");
gal.appendChild(img);
};
现在,我创建了此函数来创建实例:
function creater(names) {// the argument "names" would be a two-dimensional array
for (var a = 0; a < names.length; a++){
var names[a][0] = new rashnik(names[a][1], names[a][0]); // right here is where I get the error
}
}
这就是我尝试称呼它的方式:
var friends = [["adi","300"],["tom","200"],["sleg","100"],["dorc","50"],["dork","25"]];
creater(friends);
问题是, var names[a][0]
部分向我抛出了一个错误,我完全理解。 我想创建一个名称与存储在names[a][0]
的字符串相同的对象,但是,那样就行不通了。 有谁对我要实现它有什么想法?
收拾 我认为这是您想要的:
resultsView['adi']
在以下代码的警报中访问它,但也可以完成resultsView.Adi
function rashnik(size, name)
{
var img=document.createElement('img');
img.src = "pics/"+name+".jpg";
img.height = size;
img.width = size;
img.id = name;
d = 300-size;
img.style.marginBottom = d/2;
img.style.marginLeft = 50;
var gal = document.getElementById("gallery");
gal.appendChild(img);
this.img = img;
return this;
};
function creater(names)
{//the argument "names" would be a two-dimensional array
var results = { };
for(var a=0; a<names.length; a++)
{
results[names[a][0]] = new rashnik(names[a][1], names[a][0]);
}
return results;
}
var friends = [["adi","300"],["tom","200"],["sleg","100"],["dorc","50"],["dork","25"]];
var resultsValue = creater(friends);
alert(resultsValue['adi'].img.src);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.