gpt4 book ai didi

javascript - Javascript/jquery 中变量的范围

转载 作者:行者123 更新时间:2023-11-28 12:15:52 25 4
gpt4 key购买 nike

这是我程序中的两个函数。

函数1:

 var parentLI;    //Global variable so can be accessed in both functions                         

$(document).on("click", ".addmorebrands", function() {
parentLI = $(this).closest('li'); //Will the value of parentLI local to function 1 only ?
$('#exampleModalCenter').modal('show');
$('#exampleModalCenter img').click(function() {
parentdiv = $(this).closest('div.outerdiv'); //Varbiale local to function 1
parentdiv.addClass('preselect');
parentdiv.siblings().removeClass('preselect');
selectedImageSRC = $(this).attr('src'); //Varbiale local to function 1
})
});

函数2:

$('#add-image').click(function(){
parentLI.append('<div class="imagewrap"><img class="images" src="'+selectedImageSRC+'" title="Manual Addition"> <input type="button" class="removediv" value="X" /></div>');
var imageNameValue = parentLI.children('.imagenames').val();
var imageTitleValue = parentLI.children('.hoverinformation').val();


$('#exampleModalCenter').modal('hide');
parentdiv.removeClass('preselect'); //How am I able to access parentdiv which is local to function 1

});

我对变量范围有疑问

  1. parentdiv定义于 Function1并将位于 Function1 本地。我如何才能在 Function2 中访问它
  2. selectedImageSRC定义于 Function1并将位于 Function1 本地。我如何才能在 Function2 中访问它在线 parentLI.append('<div class="imagewrap"><img class="images" src="'+selectedImageSRC+'" title="Manual Addition"> <input type="button" class="removediv" value="X" /></div>');
  3. 变量 parentLI在两个函数之外声明,因此它将是全局的。但它的 value($(this).closest('li');) 在 Function1 中分配给它.如何在 Function2 中访问 value($(this).closest('li');)

最佳答案

当您在不使用 varletconst 关键字的情况下定义变量时,它会在全局命名空间(也称为 >窗口)。与 PHP 不同的是,全局命名空间中的变量在函数内部自动可用。这就是为什么 parentdiv 和其他变量在第二个函数中可见。

function test() {
variable1 = 'foo';
var variable2 = 'bar';
}

test();
console.log(typeof variable1); // 'string'
console.log(typeof variable2); // 'undefined'

关于第三个问题,变量在任何地方都有相同的值。您在公共(public)命名空间中定义了变量,因此两个函数都会看到相同的变量,该变量是全局定义的,而不是本地定义的。

关于javascript - Javascript/jquery 中变量的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49572058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com