簡體   English   中英

用於JavaScript的預處理仿真器(時序/調試示例)

[英]Pre-processing Emulator for JavaScript ( Timing / Debug Example )

在C ++中,您可以通過使用預處理指令來省略編譯調試代碼,以便快速保存編譯的代碼,而不會受到生產中不需要的調試代碼的阻礙。

在JavaScript中有相關的方法嗎? 我過去一直在做的是評論調試代碼,但我想要一個更簡潔的方法來做。

下面的示例顯示了如果debug設置為true則激活的4個if語句。 但是在生產中,當我知道它將被設置為false時,我不希望這次檢查4次。 正如我所提到的,我可以將它塞進一行並對其進行評論......但我想要一個干凈的方法來做到這一點?

/**
 **  cType
 */

function cType( o_p ) {
    if( debug ) {
        var t1, t2, t3, t4, i1, i2, i3; t1 = new Date().getTime();
    }
    o_p = MType[ o_p.model ].pre( o_p ); 
    if ( o_p.result !== 'complete' ) {
        if( debug ) {
            t2 = new Date().getTime();
            console.log( '---------------Send to Server - object_pipe: \n ' + o_p.toSource() ); 
        } 
        var string_pipe = JSON.stringify( o_p );
        cMachine( 'pipe=' + string_pipe , function( string_pipe ) {
            if( debug ) { 
                console.log( '---------------Receive from Server - object_pipe: \n ' + string_pipe ); 
                t3 = new Date().getTime();
            }
            MType[ o_p.model ].post( JSON.parse( string_pipe ) );
            if( debug ) {
                t4 = new Date().getTime(); i1 = t2-t1 ; i2 = t3-t2 ; i3 = t4-t3;
                console.log( '---------------Pre, Transit, Post = ', i1, i2, i3 );  
            }
        } );
    }
}

您總是可以通過c預處理器傳遞它,如:

gcc -E input.js -o output.js

這將允許您使用#if甚至包含和宏。

如果使用RequireJS ,則可以使用build pragma甚至has.js集成來在優化(縮小)時禁用/啟用代碼片段。

不,Javascript沒有編譯,它被解釋。 因此,除非你傳遞非標准的Javascript,否則不可能有預處理指令 - 它可能不再是Javascript - 通過另一個實用程序編寫代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM