为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕妹3146593 2019-02-05 14:06:22
js/html 请教个js函数参数传递的问题
查看完整描述

2 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

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



查看完整回答
反对 回复 2019-03-19
?
弑天下

TA贡献1818条经验 获得超8个赞

其实,本质上,JS是没有引用传递的,函数的传参,都是传值。

但是这里要牵扯到一个变量作用域的问题。
你写的这个部分有问题,先假如没有这个for循环,你这个ajax是在一个函数局部定义了一个局部变量obj的话
因为ajax的success回调函数执行的时候,这个局部函数已经终结,obj已经结束了其生命周期,所以这个时候的obj肯定是undefined

查看完整回答
反对 回复 2019-03-19
  • 2 回答
  • 0 关注
  • 443 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信