Javascript中的$ var声明

$ var declaration in Javascript

本文关键字:声明 var 中的 Javascript      更新时间:2023-09-26

如何在Javascript中声明对象变量?错误地,我以为我是在PHP中,它工作了。

$(res.data).each(function(index, value){
                    $src = value.images.fixed_height;
                    $('<a href="'+value.url+'" target="_blank"><img src="' + $src.url + '" width="' + $src.width +'" height="' + $src.height + '"></a>').load(function(){
                        $(this).appendTo("#results").fadeIn();
                    })
                });

然后,当我试着从Javascript的角度思考它不起作用时,

$(res.data).each(function(index, value){
                    var src = value.images.fixed_height;
                    $('<a href="'+value.url+'" target="_blank"><img src="' + src.url + '" width="' + src.width +'" height="' + src.height + '"></a>').load(function(){
                        $(this).appendTo("#results").fadeIn();
                    })
                });

两者之间的唯一区别是,第一个代码片段中的$src是全局的(或者至少在匿名函数的局部作用域之外),而第二个示例中的src是该函数的局部。

由于您要做的第一件事是设置变量,因此对于这段代码来说,这应该无关紧要,因此第二个代码片段应该与第一个代码片段完全相同。

我能想到的不同行为的唯一解释是,当另一段代码实际上使用这个全局src时,因此受到第二个代码片段的影响。但这听起来不太可能对我来说,所以我的猜测是你的测试是错误的,要么两个片段都工作,要么两个都不工作。