Можете ли вы вызвать функцию, которая возвращает в контексте вызывающей стороны?

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

Очевидно, что есть гораздо лучшие способы выразить это, Я просто хотел бы знать, возможна ли концепция.

0

Решение

Обычно, если вы хотите остановить код, который вызвал вашу функцию, вы бросаете исключение:

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) {}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]