【发布时间】:2018-02-06 08:21:21
【问题描述】:
我发现,为了让我的代码正常工作,我必须声明所有(或至少 80%)变量并在本地实例化它们,即使我已经在范围函数中这样做了......为什么是这?例如:
$(function() {
var cUnit, fUnit, temp, wind, humidity, weatherDescrpt, wData;
cUnit = true;
fUnit = false;
$("#fUnit").click(function() {
var cUnit = true;
var fUnit = false;
toggleTemp(cUnit,fUnit);
});
function setAttribute(wData) {
cUnit = true;
fUnit = false;
temp = displayTemp(wData.main.temp,fUnit);
}
});
更新--- 我相信我终于找到了问题……toggleTemp() 中的 if 语句太多了……现在看起来不错
【问题讨论】:
-
您显示的代码不需要本地设置的变量works here。您可能还有其他一些导致问题的代码。显示更多您的实际代码,并可能提供Minimal, Complete, and Verifiable example
-
如果没有局部变量,哪个部分不起作用?显示的代码中没有任何内容调用您的
setAttribute()函数,但该函数是唯一尝试使用外部函数中的变量的地方。您能否请edit 您的问题展示一个您认为应该有效但无效的自包含示例,并在代码中包含几个 cmets 以指出哪一行出错了?跨度> -
@Patrick &@nnnnnn...抱歉,我是新手,不确定是否允许放置“太多”代码..我会修改我的问题,希望显示我认为哪里出了问题...此外,我已经输入了您的一些建议,因此我得到了一些所需的功能,但不是全部
标签: javascript function scope global-variables