一个陷阱,引发一次深刻的思考,代码如下:
- var a = 11111;
- var b = {
- pro: "test"
- }
- function fn(a,b){
- a = 2222;
- b.pro = "zhenn";
- }
- fn(a,b);
- console.log(a); // 11111
- console.log(b); // b.pro = "zhenn"
在JavaScript中,除了Object,Array是地址引用,其他数据类型,诸如Number
、Boolean、String等都是值引用,这就是从陷阱中挖出的东西,同一个坑不能跳进去两次啊!杯具…

哈哈,确实很容易让人陷进去。
其实JavaScript函数传递参数时的都是值,但是值和值是不一样的。
只不过引用类型的值里存的是“指针”。 http://www.xiaoxiaozi.com/2010/03/05/1719/
[回复]
写错了.是
console.log(b.pro); // b.pro = “zhenn”
否则你打印对象..结果应该是[object]
[回复]
zhenn 回复:
三月 31st, 2010 at 16:59
@Rekey,
console.log(b); 显示的是对象的内部结构,后面注释只是为了说明b。pro的值
[回复]