【发布时间】:2013-06-29 19:15:21
【问题描述】:
我需要重写函数的一些行为,在它调用其他函数之后。问题是这个父函数是一个库,我不想改变它,所以像做一些标志或这个函数的另一个改变这样的解决方案不是很好。我知道我在函数中有一个可以更改的调用者对象,所以也许我可以用它弄清楚。示例如下:
function parent()
{
console.log("some need stuff");
some.handler.function.from.config.that.i.can.change();
console.log("need omit this right till the end");
}
function child()
{
console.log("need to somehow stop evaluation of " + child.caller + " function");
}
作为一名 ruby 程序员,我知道有 lambdas,您可以使用它从闭包的内部范围终止评估。但我不确定如何从 javascript 执行此操作。
【问题讨论】:
-
我已经为您的问题发布了一个可能的解决方案 - 我认为它与您的要求一样好。但是,按照我的建议做通常不是最好的方法。我怀疑the XY problem。如果您在此处遇到更具体的问题,请考虑针对实际问题提出新问题。强烈建议不要为此使用异常。
-
你总是可以抛出,但尽可能使用异步技术。
标签: javascript closures evaluation