我有一个函数,我有一个赋值问题。
使用故障排除console.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)
}
有趣的是,在控制台上我得到了变量' the_node.data。$ color'之前和之后返回的正确值。显示分配已经发生,但尚未在对象' the_node'中分配。
为什么会发生这种情况?
(以下是对象的内容' the_node'对象'数据')
$$family: "class"
Config: {$extend: false, overridable: true, type: "multipie", color: "#e6e6e6", alpha: 1, …}
Edge: {$extend: false, overridable: false, type: "none", color: "#ccb", lineWidth: 1, …}
Label: {$extend: false, overridable: true, type: "Native", style: " ", size: 10, …}
Node: {$extend: false, overridable: true, type: "multipie", color: "#e6e6e6", alpha: 1, …}
_angularWidth: 1
_depth: 1
_flag: true
_treeAngularWidth: 3.1666666666666665
angleSpan: {begin: 0, end: 2.7762911822421428}
constructor: function()
data: Object
$alpha: "1"
$color: "#87b13e"
$dim-quotient: 1
$label-size: 15
$span: 2.7762911822421428
class: "trait"
color: "#000000"
trait: "endurance"
Object Prototype
答案 0 :(得分:0)
目前尚不清楚the_node实际包含哪一行:
console.log(the_node); //returns #111111
如果以上一行无法正确:
console.log('before: '+the_node.data["$color"]); //returns #111111
是对的吗?
尝试:
console.dir(the_node);
这将导致显示the_node的全部内容,包括成员。
同时输入:
console.log(typeof the_node);
查看它是否是一个物体。
注意:当用$前缀任何变量时,如果使用jquery'color'成为具有许多附加功能的对象,那么你不能简单地分配给$ color,你应该分配给$ color.value或者之类的东西。要分配给的对象的一部分。