2016-04-22 9 views
0

私は毎回使用行うコードの行を簡素化しようとしている:リターンを呼び出さずにJavascriptの機能から復帰するには?

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

、あなたがすることはできません。 – jcubic

+0

いいえ。あなたが関数を呼び出すと、その関数は呼び出し元への応答のみを返します。あなたは 'return my_return(this)'を試すことができます – Rajesh

+0

'x.return'とはどういう意味ですか? 'x'オブジェクトの' return'プロパティにアクセスしようとしていますか?関数に 'return'ステートメントを持たせるような制限はありません。関数内で操作されている値を使いたいのでなければ! – Rayon

答えて

0

いいえ、あなたはmy_returnの内部returnmy_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 
} 
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にreturnプロパティを作成することを意味しますが、返されません。
  2. x.return;return;に置き換えると、関数の呼び出しから外されることはありません([3]、あなたの目的です)。
  3. 「my_return(この)」「これは」「文があれば」である関数を呼び出すオブジェクトに設定されます。要するに

    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(); 
    
関連する問題