javascript 对象初探 --- 传递/比较对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 对象初探 --- 传递/比较对象相关的知识,希望对你有一定的参考价值。

传递对象


当我们拷贝某个对象或者将对象传递给某个函数时,往往传递的都是该对象的引用。因此我们在该对象的引用上做任何改动,实际上都会影响到引用的原对象。

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 对象初探 --- 传递/比较对象的主要内容,如果未能解决你的问题,请参考以下文章

javascript 对象初探 --- call()和apply()初探

Javascript 面向对象编程初探--- 封装

javascript 对象初探--- 返回对象的函数

JavaScript初探系列之日期对象

JavaScript初探系列之面向对象

javascript对象初探--- 构造器函数