Flash 为什么我会得到“一个”;重复变量定义“;这里有错误吗?

Flash 为什么我会得到“一个”;重复变量定义“;这里有错误吗?,flash,actionscript-3,arrays,Flash,Actionscript 3,Arrays,它认为Flash告诉我我的数组tabData被复制了,但我只在代码的var部分设置了一次: 这是出现错误的行: for (var i in tabData) { TabMenu类 private-var-tabData:Array=[];// 我不知道flash,但在两个循环中都使用I作为循环变量这一事实是否存在问题?我认为它不应该——当然不会是Java——但也许就是这样 此外,与您的问题无关,这一行: tab.active = i < 1 ? tab.active = true :

它认为Flash告诉我我的数组tabData被复制了,但我只在代码的var部分设置了一次:

这是出现错误的行:

for (var i in tabData) {

TabMenu类
private-var-tabData:Array=[];// 我不知道flash,但在两个循环中都使用
I
作为循环变量这一事实是否存在问题?我认为它不应该——当然不会是Java——但也许就是这样

此外,与您的问题无关,这一行:

tab.active = i < 1 ? tab.active = true : tab.active = false;
tab.active=i<1?tab.active=true:tab.active=false;
这样更容易阅读:

tab.active = i < 1;
tab.active=i<1;

同样,假设flash像我更熟悉的语言一样工作。

我不知道flash,但是在两个循环中都使用
I
作为循环变量这一事实是一个问题吗?我认为它不应该——当然不会是Java——但也许就是这样

此外,与您的问题无关,这一行:

tab.active = i < 1 ? tab.active = true : tab.active = false;
tab.active=i<1?tab.active=true:tab.active=false;
这样更容易阅读:

tab.active = i < 1;
tab.active=i<1;

同样,假设flash像我更熟悉的语言一样工作。

I
是重复变量,而不是
tabData
。Actionscript只允许函数作用域,而不像许多(大多数)其他语言那样允许块作用域

将块级作用域变量提升到函数作用域称为
提升

资源:


i
是重复变量,而不是
tabData
。Actionscript只允许函数作用域,而不像许多(大多数)其他语言那样允许块作用域

将块级作用域变量提升到函数作用域称为
提升

资源:


砰!就是这样:)我只是认为错误是在谈论tabData,当它谈论iYou仍然可以在两个循环中使用I时,只是不要在第二个循环中使用
var I
。BAM!就是这样:)我只是认为错误是在谈论tabData,当它谈论iYou仍然可以对两个循环使用I时,只是不要在第二个循环中使用
var I