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

How to return from a Javascript funtion without calling return?

我正在尝试简化我每次都使用的一行代码:

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

不,一旦你调用 my_returnmy_return 内的 return 就是从 my_return.

内到 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
}

为什么这行不通:

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上创建return 属性,不会return.
  2. x.return; 替换为 return; 将 return 来自函数,而不是来自它的调用之外(在 [3],这是你的 objective)。
  3. 'my_return(this)' "this" 将设置为调用 "if statement" 所在函数的对象。

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