我用3个属性创建了这个对象:
Node = {
name : "",
isOkay : true,
rotation : 0.0
};
如何创建这些对象的数组,大小为100。
所以后来我可以这样做:
nodeList[74].name = "Peter";
nodeList[74].isOkay = false;
nodeList[74].rotation = 1.3;
或类似......
我对此非常陌生,我发现了几个关于此的主题,但它从未正确编译过。
如果有人能够展示正确的语法,我将非常感激,谢谢!
答案 0 :(得分:1)
我会用这种方式:
var Node = function() {
this.name = "";
this.isOkay = true;
this.rotation = 0.0
}
var nodeList = [];
for (var i = 0; i < 10; i++)
{
nodeList.push(new Node());
}
nodeList[0].name = "test";
所以你可以创建一个 new 对象(真的很新),以便以后管理它。看here。
修改强>:
我所做的是使用构造函数方法创建一个对象,您可以在MDN here上查看它。
像你一样创建一个对象:
var Node = { /* ... */ }
就像启动一个对象一样。要有另一个,你必须写另一个,依此类推。使用该构造函数,您可以根据模型创建所需的任何实例。
答案 1 :(得分:0)
根据情况可能有助于懒惰地进行此操作
var Node = function(name, isOkay,rotation){
if(!(this instanceof Node)) return new Node(name,isOkay,rotation);
else {
this.name = name;
this.isOkay = isOkay;
this.rotation = rotation;
}
}
var NodeCollective = function(numberOfNodes){
if(!(this instanceof NodeCollective)) return new NodeCollective(numberOfNodes);
else{
var _collective={};
var _defaultName = "", _defaultIsOkay = true, _defaultRotation=0.0;
this.length = numberOfNodes;
this.getNode=function(nodeNumber){
if(!_collective.hasOwnProperty(nodeNumber) && nodeNumber < numberOfNodes){
_collective[nodeNumber]=
Node(_defaultName,_defaultIsOkay,_defaultRotation);
}
//I am just assuming I am not going to get garbage
//you can put in checks to make sure everything is kosher
//if you really want to
return _collective[nodeNumber];
};
}
}
但它也取决于你要做什么...如果你可能没有得到程序中的所有节点然后以某种方式实现它们,避免贪婪地创建它们可以节省你很多时间,如果代码经常被执行,但是如果这段代码没有被执行,那么这可能会被过度杀死。
答案 2 :(得分:-1)
var nodeList = []; // create empty array
nodeList.push(Node); // add the object to the end of the array
nodeList[0].rotation = 1.3; // set rotation property of the object
console.log(nodeList[0]); // prints the object to console