我正在p5.js中使用一系列对象。如果满足与对象的值相关的某些条件,我会创建另一个数组来容纳这些"有效"对象。
我想更改"有效对象"数组和"主"数组的对象的值。如果我从"有效的OBJ"数组中更改它,它是否也从"主"数组更改?
var objects[];
var validObjects[];
function setup() {
createObj();
myFunc2();
}
function object( name, condition ) {
// Define a class called 'object'.
this.name = name;
this.condition = condition;
}
function createObj() {
objects[0] = new object( 'obj0', true );
objects[1] = new object( 'obj1', true );
objects[2] = new object( 'obj2', false );
objects[3] = new object( 'obj3', false );
}
function myFunc() {
// Pick out the valid objects and put them into another array.
for( var i = 0; i < objects.length; i++ ) {
if( objects[i].condition == true )
validObjects.push( objects[i] );
}
function myFunc2() {
// Change a field of the objects from the new array.
for( var i = 0; i < validObjects.length; i++ )
objects[i].condition = !objects[i].condition;
}
MyFunc2()是否会永远更改对象的状况字段?还是我应该以不同的方式处理?
编辑:固定语法。
是在JavaScript中所有对象中的所有对象都是通过参考分配的,而不是值。当您想制作对象的副本时,您需要克隆它。
var clone = Object.assign({}, cloneTarget);
也是您的语法:
objects[0] = new object( obj0, true );
似乎不在了,您应该将这些名称更改为literals
而不是identifiers
正确吗?
objects[0] = new object( 'obj0', true );