Javascript jQuery-全局变量
我试图在不同的函数中使用变量,我想设置全局变量。有办法吗 我想要这样的东西:Javascript jQuery-全局变量,javascript,jquery,Javascript,Jquery,我试图在不同的函数中使用变量,我想设置全局变量。有办法吗 我想要这样的东西: $('.bar1').animate({'height':'10' + "%"},1500, function() { var bar1_height = $(".bar1").height() * 0.5; }); 然后在其他地方使用变量bar\u height。在函数之外声明bar\u height var bar1_height; $('.bar1').animate({'height':'10
$('.bar1').animate({'height':'10' + "%"},1500, function() {
var bar1_height = $(".bar1").height() * 0.5;
});
然后在其他地方使用变量
bar\u height
。在函数之外声明bar\u height
var bar1_height;
$('.bar1').animate({'height':'10' + "%"},1500, function() {
bar1_height = $(".bar1").height() * 0.5;
});
这将允许您全局访问它(即在功能内部和外部)
发件人:
当您在任何函数之外声明变量时,它被称为
全局变量,因为它可用于
当前文件。在函数中声明变量时,它是
称为局部变量,因为它仅在该变量中可用
功能
var bar1_height;
$('.bar1').animate({'height':'10' + "%"},1500, function() {
bar1_height = $(".bar1").height() * 0.5;
});
在您的功能范围之外声明
bar\u height
var bar1_height;
$('.bar1').animate({'height':'10' + "%"},1500, function() {
bar1_height = $(".bar1").height() * 0.5;
});
这将允许您全局访问它(即在功能内部和外部)
发件人:
当您在任何函数之外声明变量时,它被称为
全局变量,因为它可用于
当前文件。在函数中声明变量时,它是
称为局部变量,因为它仅在该变量中可用
功能
var bar1_height;
$('.bar1').animate({'height':'10' + "%"},1500, function() {
bar1_height = $(".bar1").height() * 0.5;
});
完成了
还是一种更理想的方式
var bar1_height;
$('.bar1').animate({'height':'10' + "%"},1500, function() {
bar1_height = $(".bar1").height() * 0.5;
});
完成了
还是一种更理想的方式
var bar1_height;
$('.bar1').animate({'height':'10' + "%"},1500, function() {
bar1_height = $(".bar1").height() * 0.5;
});
javascript最糟糕的一个方面是。只需删除var
关键字,即可使变量成为全局变量:
$('.bar1').animate({'height':'10' + "%"},1500, function() {
bar1_height = $(".bar1").height() * 0.5;
});
但这是可以考虑的。例如:
var getAddress = function(street, city, country) {
location = street + ', ' + city + ', ' + country;
return location;
}
getAddress('Holborn', 'London', 'England');
你能认出那只可怕的虫子吗
你真的应该在尽可能狭窄的范围内声明你的变量,否则你会得到一堆混乱的全局变量。如果在函数内外都需要变量,只需在外部范围内声明它(正如其他答案所述):
(这里神秘的外部功能是防止变量成为真正的全局变量。)
我发现了解关于可变范围的最佳实践非常有用 javascript最糟糕的一个方面是。只需删除var
关键字,即可使变量成为全局变量:
$('.bar1').animate({'height':'10' + "%"},1500, function() {
bar1_height = $(".bar1").height() * 0.5;
});
但这是可以考虑的。例如:
var getAddress = function(street, city, country) {
location = street + ', ' + city + ', ' + country;
return location;
}
getAddress('Holborn', 'London', 'England');
你能认出那只可怕的虫子吗
你真的应该在尽可能狭窄的范围内声明你的变量,否则你会得到一堆混乱的全局变量。如果在函数内外都需要变量,只需在外部范围内声明它(正如其他答案所述):
(这里神秘的外部功能是防止变量成为真正的全局变量。)
我发现了解关于可变范围的最佳实践非常有用 虽然这确实是一个全局变量(好吧,属性真的),但它通常也不是解决这个问题的理想方法…@pst-我知道,但OP说他想要一个全局变量,这肯定是全局变量。OP对JavaScript的经验也较少。提供有助于做出明智决策的其他信息:)投票赞成,尽管解释差异会使这成为一个更好的答案。另外,请看RichardTowers的回答。虽然这确实是一个全局变量(好吧,属性真的),但它通常也不是解决这个问题的理想方法…@pst-我知道,但OP说他想要一个全局变量,这肯定是全局变量。OP对JavaScript的经验也较少。提供有助于做出明智决策的其他信息:)投票赞成,尽管解释差异会使这成为一个更好的答案。另外,请参阅RichardTowers的答案。我已经尝试过检索值
$('.test').text(bar12_高度)代码>它给了我“undefined%”,而没有看到其余的相关代码。还有,你是说bar1_高度还是bar12_高度?这是代码的其余部分,我不知道我做错了什么两件事。1) 您应该在animate调用中从var bar1\u height
中删除var,因为这实际上会重新声明它。2) 用于指定值的代码是正确的,但它是在动画完成之前执行的。像这样向内移动:好的,但我想在函数的外侧使用变量bar1_height。。。我想在代码后期使用该值,你明白我的意思吗?我尝试过检索值$('.test')。text(bar12_高度)代码>它给了我“undefined%”,而没有看到其余的相关代码。还有,你是说bar1_高度还是bar12_高度?这是代码的其余部分,我不知道我做错了什么两件事。1) 您应该在animate调用中从var bar1\u height
中删除var,因为这实际上会重新声明它。2) 用于指定值的代码是正确的,但它是在动画完成之前执行的。像这样向内移动:好的,但我想在函数的外侧使用变量bar1_height。。。我想在代码后期使用这个值,你明白我的意思吗?