你能在调用者的上下文中调用 returns 的函数吗?
Can you call a function that returns in the context of the caller?
我不认为这是可能的,但嘿,你永远不知道。我很好奇这是否可以用通用语言来完成。我的示例将在 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
显然有更好的表达方式,我只是想知道这个概念是否可行。
通常,如果您想停止调用您的函数的代码,您会抛出一个异常:
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) {}
我不认为这是可能的,但嘿,你永远不知道。我很好奇这是否可以用通用语言来完成。我的示例将在 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
显然有更好的表达方式,我只是想知道这个概念是否可行。
通常,如果您想停止调用您的函数的代码,您会抛出一个异常:
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) {}