基本类型和引用类型的值
Posted aizzz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本类型和引用类型的值相关的知识,希望对你有一定的参考价值。
1.基本类型是按值访问的,因为可以操作其中实际的值,而引用类型指的是可能包含多个值的对象
对于引用类型创建时,我们可以为它定义方法或者属性,
比如
var person = new Object();
person.name = ‘bob‘;
alert(person.name)
而对于基本数据类型,这样书写返回undefined ,不会报错
2.复制基本类型值和引用类型的值时的区别
1>
var a = 1;
var b = a;
此处将基本类型a的值赋给b,相当于创建了另一块内存空间,两者相互独立,互不影响
2>复制引用类型时
var obj = new Object();
var obj1 = obj;
obj.name = ‘bob‘;
alert(obj1.name) // ‘bob‘
引用类型复制时,同样将变量对象中的值复制一份到新变量的内存空间中,但新变量是一个指针,指针指向堆内存中一个对象,复制完成后,与原变量指向同一个对象,因而,改变会相互影响。
3>函数中参数传递 (通过值传递)
都是通过值传递,当参数为对象时,不太好理解。
例如: function setName(obj) {
obj.name = ‘bob‘;
obj = new Object();
obj.name = ‘alice‘;
}
var person = new Object();
setName(person);
alert(person.name) // ‘bob‘
此处输出bob而非alice 说明参数为值传递,因为一旦完成复制后,两者便相互独立了,函数中新定义的对象没有影响到person ,实际上此处定义的为函数的局部对象,这个对象会在函数执行后立即被销毁
以上是关于基本类型和引用类型的值的主要内容,如果未能解决你的问题,请参考以下文章