如何在不调用return的情况下从Javascript函数返回?

时间:2016-04-22 10:32:09

标签: javascript call

我试图简化我每次都使用的一行代码:

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(); }

2 个答案:

答案 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]}
  1. 这意味着在x上创建一个返回属性,它不会返回。
  2. x.return;替换为return;将从该函数返回,而不是从其调用之外返回(在[3],这是您的目标)。
  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();