Javascript中的引用类型

一般提到引用类型,脑海中通常都会想到一个词叫“同步”,也就是变化在两者之间是同步的,不管是改变引用的值还是变量的值,最终变量和绑定在该变量上的引用这两者的值都会保持一致。

在javascript中有一个特别的类型叫做引用类型,其中包括可能大家比较熟悉的Object类型,Function类型,还有一些如基本包装类型,RegExp类型等。这些都属于引用类型,举例来说:var car_a = {brand: 'benz', color: 'black'},这条语句就声明了一个引用类型变量car_a并赋给了初值,若再添加这行语句:var car_b = car_a; car_b.color = 'red',那么现在car_a的color属性也随之改变了,可以粗浅的理解成car_a和car_b都是这个对象{brand: 'benz', color: 'black'}的引用,所以改变一个就会改变这个被引用的“匿名”对象。

了解这个规则之后就可以理解javascript中函数的参数是按值传递而不是引用传递的了。比如:
<pre>
var color_a = {color: 'blue'}
function cc (obj) {
obj.color = 'red' <code>// obj被赋值后就和color_a指向了同一个对象</code>
obj = {age: '20'} <code>// obj指向了一个新的对象</code>
}
cc(color_a) <code>// color_a = {color: 'red'}</code>
</pre>  如果是按引用传递的话那么最后color应该等于{age: '20'},所以这就是关于javascript中引用类型的简要说明。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容