从子功能完全突破javascript

时间:2017-02-02 18:22:14

标签: javascript

简单的问题,我猜......

function foo1() {
    foo2();
    // should not hit this line
}
function foo2() {
    foo3();
    // should not hit this line
}
function foo3() {
   if(someCondition)
      // should not hit this line
}

如果在foo3()中,如果我使用简单返回,它将继续在foo2()和foo3()中执行。

我理解有可能找回返值等等,我只是想知道是否可以完全退出foo3()?

1 个答案:

答案 0 :(得分:1)

要真实回答您的问题,请务必foo3()来自function foo1() { console.log(1) foo2() console.log("Never hits") } function foo2() { console.log(2) foo3(3) console.log("Never hits") } function foo3() { if (true) throw "Breakout" } try { foo1() } catch(e) { console.log(e) }

library(readxl)
scb <- read_excel(file.choose()) 
scb <- scb[3:34,1:56] # Remove data that is not needed
scbnew <- data.frame(t(scb))

colnames(scbnew) <- scbnew[1,] # Nope
colnames(scbew) <- as.character(scbnew[1,]) # Nope

这是异常泡沫的部分原因。可能有理由以这种方式中止执行,但您可能希望考虑替代方案。

但你可能不希望这样做,因为这是一个非常臭的架构,但你已经知道更多的惯用选择是检查返回。