今天看了书,发现下面的难以理解,请大神指点:
function setName(obj){
obj.name="Nicholas";
obj=new Object();
obj.name="Greg";
}
var person=new Object();
setName(person);
alert(person.name); //"Nicholas"
在把person传递给setName()之后,其name属性被设置为"Nicholas".让后,又将一个新的对象赋给变量obj,同时将其name属性设置为"Greg".如果person是按引用来传递,那么person就自动会被吸引改为指向其name的属性值为"Greg"的新对象.但是,但接下来访问person.name的时候,显示的值仍为"Nicholas".这说明即使在函数内部修改了参数的的值,但原始的引用人保持不变.实际上,但函数内部重写obj时,这个变量引用的就是一个局部对象了.而局部对象会在函数执行完毕之后立即被销毁.粗体为不明白的地方,希望可以指点.
function setName(obj){
obj.name="Nicholas";
obj=new Object();
obj.name="Greg";
}
var person=new Object();
setName(person);
alert(person.name); //"Nicholas"
在把person传递给setName()之后,其name属性被设置为"Nicholas".让后,又将一个新的对象赋给变量obj,同时将其name属性设置为"Greg".如果person是按引用来传递,那么person就自动会被吸引改为指向其name的属性值为"Greg"的新对象.但是,但接下来访问person.name的时候,显示的值仍为"Nicholas".这说明即使在函数内部修改了参数的的值,但原始的引用人保持不变.实际上,但函数内部重写obj时,这个变量引用的就是一个局部对象了.而局部对象会在函数执行完毕之后立即被销毁.粗体为不明白的地方,希望可以指点.
解决方案 »
- js中的地址转换问题。。。。。。求高手
- 输入问题?
- 单选按牛
- javascript创建select,看看这段代码的问题,谢谢
- javascript与php的交互
- 如何使用frame?急再线等啊
- 请问在用onClick时 如何能够让它在鼠标移动上去时显示手的图标 就向其他链接一样
- 请教一个关于按钮的问题!
- 在分桢中,一个子页面启动另一子页面中的iframe的问题?
- 谁能告诉我象www.sina.com.cn或者www.soufun.com 一些网站在进入首页的时候会先全屏显示一副画面,在进入首页,请问是怎么写的
- <img>控件添加onclick()和mouseover()事件
- js新手请教各位大神个小问题,望各位大神多帮帮小弟
相当于var obj=new Object();
就是在函数内部又创建了一个新的局部变量,它的作用域覆盖了参数obj的作用域。所以你更改对obj无效