你能调用一个在调用者的上下文中返回的函数吗?

时间:2015-03-25 21:28:40

标签: javascript php python stack return

我认为这不可能,但嘿,你永远不会知道。我很好奇是否可以用普通语言做。我的示例将使用JavaScript,但我很想知道这是否可以在Python,PHP,Java等中完成。

假设有两个功能。

var printX = function(x){
    checkX(x, this);
    console.log(x);
}
var checkX = function(x, caller){
    if (x > 10){
        caller.return;
    }
}
printX(5);  //Prints 5
printX(15); //Doesn't print anything

显然有更好的表达方式,我只想知道这个概念是否可行。

1 个答案:

答案 0 :(得分:2)

通常,如果要停止调用函数的代码,则抛出异常:



var printX = function(x) {
    checkX(x);
    document.write(x);
}
var checkX = function(x) {
    if (x > 10) {
        throw "exit";
    }
}

try { printX(5)  } catch(e) {}  
try { printX(15) } catch(e) {}