Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript对象赋值未按预期工作_Javascript_Arrays - Fatal编程技术网

javascript对象赋值未按预期工作

javascript对象赋值未按预期工作,javascript,arrays,Javascript,Arrays,我对一个函数的赋值有问题 在疑难解答控制台.log语句中看起来是这样的: function myfunc() { the_node = some_array; //with data.$color = #111111 console.log('before: '+the_node.data["$color"]); //returns #111111 console.log(the_node); //returns #111111 (at data.$color)

我对一个函数的赋值有问题

在疑难解答控制台.log语句中看起来是这样的:

function myfunc()
    {

  the_node = some_array; //with data.$color = #111111

    console.log('before: '+the_node.data["$color"]); //returns #111111
    console.log(the_node); //returns #111111 (at data.$color)

    the_node.data["$color"] = "#000000" ; //the assignment

    console.log('after: '+the_node.data["$color"]); //returns #000000
    console.log(the_node); //returns #111111 (should return #000000) (at data.$color)

  }
有趣的是,在控制台上,我为变量'theu node.data.$color'返回了正确的前后值,该变量显示赋值已发生,但尚未在对象'theu node'中赋值

知道为什么会这样吗

(以下是包含对象“数据”的对象“the_node”的内容)


尚不清楚\u节点实际包含的行:

     console.log(the_node); //returns #111111
如果上面的行:

     console.log('before: '+the_node.data["$color"]); //returns #111111
对吗

尝试:

这将导致显示_节点的完整内容,包括成员

也可输入:

    console.log(typeof the_node);
看看它是不是一个物体


注意:当使用$作为任何变量的前缀时,如果使用jquery“color”成为一个具有许多附加功能的对象,则不能简单地分配给$color,您应该分配给$color.value之类的对象,或者您希望分配给对象的任何部分。

您的代码对我来说都能正常工作-您能举一个可运行的例子吗?我无法重现这个问题-或者您可以看到任何可以得到结果的方法。我可以理解用另一种方式得到结果,新的值在设置之前和之后都会出现,这是有原因的。是的,这很奇怪。。没有意义您可以提供数组(_节点)以便我们更好地理解吗?请参见obj解释_节点。数据[“$color”]是字符串,而_节点是对象OK,在您的注释中为“_节点”指定一个数组,“some_array”实际上是一个数组还是一个包含名为“data”的成员的对象?是的,这是正确的-它是一个包含名为“data”的成员的对象?它是一个数组吗?或者它是一个包含名为“数据”的成员的对象?请参见澄清的答案-对象+名为“数据”的成员
    console.dir(the_node);
    console.log(typeof the_node);