5

....セクションがたくさんあるページがあります。そのうちの 1 つでは、途中で停止し、このスクリプト タグの残りのコンテンツを実行しないことにしましたが、ページ上の他のコード セグメントは実行したままです。関数呼び出しでコード セグメント全体をラップせずにこれを行う方法はありますか?

例えば:

<script type='text/javascript'>
    console.log('1 start');
    /* Exit here */
    console.log('1 end');
</script>
<script type='text/javascript'>
    console.log('2 start');
    console.log('2 end');
</script>

出力を生成する必要があります

1 start
2 start
2 end

ではない1 end

明らかな答えは、スクリプトを関数でラップすることです。

<script type='text/javascript'>
    (function(){
        console.log('1 start');
        return;
        console.log('1 end');
    })();
</script>

通常はこれが最善の方法ですが、適切でない場合もあります。だから私の質問は、もしあれば、これを行うことができる他の方法は何ですか? または、そうでない場合、なぜですか?

4

3 に答える 3

1

目的を達成する 1 つの方法 (特定のスクリプト ブロックを関数でラップせずに実行を停止する) は、エラーをスローすることです。

<script type='text/javascript'>
    console.log('1 start');
    throw new Error();
    console.log('1 end');
</script>

もちろん、これの欠点は、コンソールにエラーが記録されることです。

于 2015-06-04T10:39:18.017 に答える