JavaScript对象行为
我不经常被难倒,但我现在只是不知所措 使用铬37.0.2062.120 m 有人能解释一下为什么我的JavaScript对象行为,javascript,object,Javascript,Object,我不经常被难倒,但我现在只是不知所措 使用铬37.0.2062.120 m 有人能解释一下为什么我的console.log()正在报告这些结果吗 JS代码 var some_obj = {min:1}; var another_obj = {}; console.log(some_obj); another_obj['sometarget'] = some_obj; // <- What is this sorcery?!?!? another_obj['sometarget']['
console.log()代码>正在报告这些结果吗
JS代码
var some_obj = {min:1};
var another_obj = {};
console.log(some_obj);
another_obj['sometarget'] = some_obj; // <- What is this sorcery?!?!?
another_obj['sometarget']['required'] = true;
console.log(some_obj);
JSFIDDLE
javascript中的对象通过引用共享
所以一些对象
和另一个对象['sometarget']
指向内存中的同一个位置
当您将['required']=true时
在其中任何一种情况下,它们都将得到更新。您不希望看到结果的哪一部分?你有什么奇怪的地方被难住了?搜索会发现几百个副本,这里有一个->javascript中的对象不是通过引用传递的!指向对象的指针不是,而是对象本身,因为它们在内存中共享同一个位置——它们实际上“指向”同一个对象。所以我猜这取决于符号:)它通常被称为“引用的副本”或“类似引用”,javascript没有指针,也没有传递真正的引用。谢谢Luan Nico@答案是用通俗易懂的英语解释的,虽然人们对“路过任何东西”的正确术语存在争议,但Luan的,因此一些对象和另一个对象['sometarget']指向记忆中的同一个位置。
这句话是不言自明的。
Object {min: 1}
Object {min: 1, required: true}