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

在js函数中,参数传递有没有所谓的值传递或者是地址/索引传递的??如果我的js函数的参数是一个jquery对象,那么它的传递属于哪种。此外,例如:for(vari=0;i... 在js函数中,参数传递有没有所谓的值传递或者是地址/索引传递的??
如果我的js函数的参数是一个jquery对象,那么它的传递属于哪种。此外,例如:
for(var i=0;i<10;i++){
var obj=$("#a_id"+i);
$.ajax({
url:"/url",
type:"post",
dataType:"json",
data:({}),
success:success
});
function success(json){
alert(obj.text());

}
}

这种情况下,传递到success函数中的obj的参数有没有变化的??(例如当i=0时候,a_id0变成是a_id2的对象等,因为ajax是异步请求,故而求解)
展开
 我来答
zhaoapk
2013-12-05 · TA获得超过3771个赞
知道大有可为答主
回答量:1343
采纳率:40%
帮助的人:1613万
展开全部
// js也有地址传递, 来个例子吧

// 接收一个Object,没有返回值
function test (obj2) {
    obj2.prop = 2; // 修改obj的属性
    obj2.attr = 3; // 添加属性
}

// obj是一个对象
var obj = {
    prop: 1 // obj的属性
};

test(obj);
// 没有返回值,但是obj被修改了
alert(obj.prop); // 2
alert(obj.attr); // 3

// 这种情况就是地址传递吧
for (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
绛紫方糖
2013-12-05 · TA获得超过742个赞
知道小有建树答主
回答量:197
采纳率:0%
帮助的人:233万
展开全部
其实,本质上,JS是没有引用传递的,函数的传参,都是传值。

但是这里要牵扯到一个变量作用域的问题。
你写的这个部分有问题,先假如没有这个for循环,你这个ajax是在一个函数局部定义了一个局部变量obj的话
因为ajax的success回调函数执行的时候,这个局部函数已经终结,obj已经结束了其生命周期,所以这个时候的obj肯定是undefined
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友603c2a9ad
2013-12-05 · 超过20用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:65.4万
展开全部
你定义的type是post就是post,定义的是get就是get,你这个里面定义的是post
追问
不好意思,这里是两个问题,我说的是函数的参数,不是请求的参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式