有没有办法访问JavaScript/ActionScript中的当前标签集
如果我创建一个琐碎的事件,例如:有没有办法访问JavaScript/ActionScript中的当前标签集,javascript,actionscript,namespaces,clone,labeled-statements,Javascript,Actionscript,Namespaces,Clone,Labeled Statements,如果我创建一个琐碎的事件,例如: 有没有办法克隆foo?没有,显然这是不可能的。标签不能在赋值语句中使用,标签的范围是定义它的循环的条件块 pastureLoop: for (i = 0; i < pastureLen; i++) { var pasture = pastures[i]; var cows = pasture.getCows(); var j, numCows = cows.length; for (j = 0; j < numCows; j
有没有办法克隆foo?没有,显然这是不可能的。标签不能在赋值语句中使用,标签的范围是定义它的循环的条件块
pastureLoop:
for (i = 0; i < pastureLen; i++)
{
var pasture = pastures[i];
var cows = pasture.getCows();
var j, numCows = cows.length;
for (j = 0; j < numCows; j++)
{
var cow = cows[j];
if (cow.isSick())
{ break pastureLoop; }
healthyCows++;
}
}
pastureLoop:
for (i = 0; i < pastureLen; i++)
{
var pasture = pastures[i];
var cows = pasture.getCows();
var j, numCows = cows.length;
for (j = 0; j < numCows; j++)
{
var cow = cows[j];
if (cow.isEating())
{ continue pastureLoop; }
}
// No cows were eating, so fire the callback for pasture[i]
pasture.executeCallback(); // or whatever
}
这可用于创建不可访问的声明:
function show_alert()
{
label:
{
break label;
var foo = 1;
}
console.log(foo);
}
但是可以通过字符串操作和函数构造函数进行访问
参考资料
continue
和break
,JS从未有过goto
。
It is a Syntax Error if any strict mode source code matches this rule.
function show_alert()
{
label:
{
break label;
var foo = 1;
}
console.log(foo);
}