【发布时间】:2017-12-08 13:18:30
【问题描述】:
根据比较用户输入值与随机值的 if 语句结果创建对象的新实例。如果这是真的,我希望它创建一个对象的新实例,并且每次比较结果为真时都这样做。
object.create() 会是这样做的方法吗?
var firstthing = new thing();
function createnewthing()
{
var entry = document.getElementById('theirentry').value;
if (oneobjectinaclass == "type1")
var firstvalueinarray = type1[0];
else if (oneobjectinaclass == "type2")
var firstvalueinarray = type2[0];
else if (oneobjectinaclass == "type3")
var firstvalueinanarray = type[0];
if (variableassignedtowhichevertype[1] == avaluetocompare)
{
numCorrect++;
alert('You\'re right! ' + numCorrect);
//the code I'm trying to get to accomplish this goes here
//var createanotherthingeachtimethisistrue = new Thing();
}
else {
alert('Wrong!');
}
}
【问题讨论】:
-
您是否尝试运行您的代码?如果你这样做了,那没有用吗?你想要完成什么(除了创建一个对象)?
-
它创建了 1 个对象。每次传递的值为真时,我都需要它创建一个新的。这运行了很多次。这只会创建createanotherthingeachtimethisistrue。该名称是一个占位符,用于解释它应该做什么。
-
在这种情况下你能把它放在一个数组中吗?您的变量名称不能描述您真正想要完成的任务。创建一个新对象就像输入
new Thing()一样简单,但不清楚你是否尝试过这个,为什么在这种情况下这对你来说不是一个令人满意的行为? -
用你说的 for 循环创建一个数组?我可以像那样动态创建变量吗?变种 [i] ?每次用户输入一个值时,它都会通过此函数对其进行验证。我希望它在正确时创建一个新对象。本质上是重新启动要检查的东西。
-
嗯,不。创建一个数组
var arr = [];并将项目添加到该数组arr.push(new Thing());。再说一次,我不确定这是否真的是你想要的。如果你想“重置一些项目”,那么你应该分配第一个变量,而不是创建一个新的局部变量。
标签: javascript class object instantiation