标签:
当我们拷贝某个对象或者将对象传递给某个函数时,往往传递的都是该对象的引用。因此我们在该对象的引用上做任何改动,实际上都会影响到引用的原对象。
var she = {num:1}; var her = she; her.num; // 1 her.num = 100; she.num; // 100
同样的将对象传递给函数也是一样的:
var she = {num:1}; var her = function(o){o.num=100}; her(she); she.num = 100;
当我们进行对象的比较时,当且仅当两个引用指向同一个对象时,结果为true。而如果是不同的对象,但恰好有相同的属性,与方法,比较也会返回false。
var a = {num:1}; var b = {num:1}; a == b // false a === b // false
我们可以新建一个对象,并将其中一个对象赋值给她,这样一来这个变量就指向了这个对象
var c = a; c == a; // true
在这种情况下,c与a所指向的对象是相同的(也就是说该其中一个另一个也跟着变化);
但b与c还是不同的对象:
b == c; // false
javascript 对象初探 (三)--- 传递/比较对象
标签:
原文地址:http://www.cnblogs.com/beyond-succeed/p/5814553.html