function test() { var obj1 = {id:1,name:''} ; var obj2 = obj1 ; obj2.id = 2 ; alert(obj2.id) ; alert(obj1.id) ; }
首先变量的值分为原始类型和引用类型 ,原始类型就是值保存在本地 你的变量声明的是对象很明显是引用类型,在内存中obj1和obj2 保存的只是一个相同的地址 这个地址指向等号后面的对象 相当于obj1,2指的同一个事物。 你将这个值改变后 obj1 2还是指向它输出必然一致 如果想输出不通很简单 改变其中一个变量的引用 如下 var a=b={n:1} a={n:2} console.log(a)//{n:2} console.log(b)//{n:1} ab本来指向同一引用,我将a指向新对象 b仍然指向老对象 输出自然不同了
那这个要怎样才能实现输出结果不一样?
var obj1 = {id:1,name:''} ; var obj2 = {id:1,name:''} ;
87,907
社区成员
224,614
社区内容
加载中
试试用AI创作助手写篇文章吧