将按引用调用作为按值调用传递

pass a call by reference as call by value

本文关键字:值调用 引用 调用      更新时间:2023-09-26

我一直在使用这段代码移动ImageIdjCrop

_ImageId变量由参考给出。

我怎么能给_ImageId变量jCrop的值?

    var _ImageId = 0;
    $(document).ready(
    function(){    
        $('.page .image').attr("id", function(){  
        _ImageId = $(this).attr("id");
        return $(this).attr("id");
    }).Jcrop({
        ImageId : _ImageId,  // my problem is here , when _ImageId change , all of them will change 
        onSelect: Page_ImageSelected
    });      
}

你的代码有点…"奇怪的"。

也许你应该试试这样做:

$(document).ready(function() {
    $('.page .image').each(function() {
        var element = $(this);
        element.Jcrop({
            ImageId : element.attr('id'),
            onSelect: Page_ImageSelected
        });
    });
}​);​

Javascript使用"按值"调用当你使用"简单"类型,如数字,整数,浮点数,字符串,布尔值…

您已经按值传递了_ImageId, JCrop方法将接收一个ImageId属性 0(或在attr回调中分配的值)的对象,并且当_ImageId更改时不会更改。