我试图简化我每次都使用的一行代码:
if (we_need_to_exit) { op(); return; }
我是否有机会定义一个函数,如下所示:
function my_return (x) {
x.op();
x.return;
}
并使用它:
if (we_need_to_exit) { my_return(this); }
是否可以定义这样的功能?
适合in my case的最佳简单解决方案如下:
if (we_need_to_exit) { return op(); }
答案 0 :(得分:0)
不,在您致电return
后,my_return
内的my_return
将从if (we_need_to_exit) { return my_fn(this); }
内返回。
你可以做你想做的事:
my_fn
,您的function my_fn (x) {
x.op();
// return any value you want, or use "return;" or just omit it
}
将是:
Widget::delete(pw, std::cerr)
答案 1 :(得分:0)
为什么这不起作用:
function my_return (x) {
x.op();
x.return; //[1] [2]
}
//-----and use it like-------------------
if (we_need_to_exit) { my_return(this); //[3]}
x.return;
替换为return;
将从该函数返回,而不是从其调用之外返回(在[3],这是您的目标)。'my_return(this)'“this”将被设置为调用“if语句”所在函数的对象。
function x(){
console.log(this); //shows the global object (window, if run in a browser)
}
var y = {
fruit:"apple",
x:function(){
console.log(this); // shows the calling object
}
};
x();
y.x();