js/html 请教个js函数参数传递的问题?

js/html 请教个js函数参数传递的问题


慕妹3146593
浏览 444回答 2
2回答

一只斗牛犬

12345678910111213141516171819//&nbsp;js也有地址传递,&nbsp;来个例子吧&nbsp;//&nbsp;接收一个Object,没有返回值function&nbsp;test&nbsp;(obj2)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;obj2.prop&nbsp;=&nbsp;2;&nbsp;//&nbsp;修改obj的属性&nbsp;&nbsp;&nbsp;&nbsp;obj2.attr&nbsp;=&nbsp;3;&nbsp;//&nbsp;添加属性}&nbsp;//&nbsp;obj是一个对象var&nbsp;obj&nbsp;=&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;prop:&nbsp;1&nbsp;//&nbsp;obj的属性};&nbsp;test(obj);//&nbsp;没有返回值,但是obj被修改了alert(obj.prop);&nbsp;//&nbsp;2alert(obj.attr);&nbsp;//&nbsp;3&nbsp;//&nbsp;这种情况就是地址传递吧1234567891011121314151617181920for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;10;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;obj&nbsp;=&nbsp;$("#a_id"&nbsp;+&nbsp;i);&nbsp;&nbsp;&nbsp;&nbsp;$.ajax({&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;"/url",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;"post",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataType:&nbsp;"json",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data:&nbsp;({}),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;success&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;success(json)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;这里obj不会是"#a_id"&nbsp;+&nbsp;i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;而是for循环结束之后的obj,也就是#a_id9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(obj.text());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}}&nbsp;//&nbsp;for循环结束之后obj是#a_id9,&nbsp;也就是最后一个alert(obj.attr('id')&nbsp;==&nbsp;'a_id9');&nbsp;//&nbsp;true

弑天下

其实,本质上,JS是没有引用传递的,函数的传参,都是传值。但是这里要牵扯到一个变量作用域的问题。你写的这个部分有问题,先假如没有这个for循环,你这个ajax是在一个函数局部定义了一个局部变量obj的话因为ajax的success回调函数执行的时候,这个局部函数已经终结,obj已经结束了其生命周期,所以这个时候的obj肯定是undefined
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery