Я не думаю, что это возможно, но эй, ты никогда не знаешь. Мне любопытно, если это возможно сделать на общих языках. Мои примеры будут на 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) {}
Других решений пока нет …