2013-08-27 65 views
1

正如標題中所述:當從CoffeeScript編譯類時,是否有強制使用JavaScript中的括號表示法的方法?從CoffeeScript編譯爲JavaScript時強制使用括號表示法

一個簡單的例子是

的CoffeeScript

class test 

    myMethod:() -> 
     1 

編譯的JavaScript沒有括號符號

var test; 

test = (function() { 
    function test() {} 

    test.prototype.myMethod = function() { 
    return 1; 
    }; 

    return test; 

})(); 

編譯的JavaScript帶支架符號

var test; 

test = (function() { 
    function test() {} 

    test.prototype['myMethod'] = function() { 
    return 1; 
    }; 

    return test; 

})(); 

請注意,在第二個輸出中,使用方括號表示方法myMethod()

我需要這個,以便我可以通過Google Closure Compiler運行輸出,並且仍然保留我的方法的名稱,這需要括號表示法,否則名稱也會被縮小。

+0

我不記得谷歌關閉編譯器...你需要它醜化和縮小? – cl0udw4lk3r

+0

@ cl0udw4lk3r和一些優化我的代碼,是的。 – Sirko

回答

1

好吧,我可以在js2coffee看到,要完成,最好的辦法是:

class test 
    'method': -> 
    console.log 'this is a test method' 

和U將得到這個js輸出:

var Test; 

Test = (function() { 

    function Test() {} 

    Test.prototype['method'] = function() { 
    return console.log('this is a test method'); 
    }; 

    return Test; 

})(); 

順便說一句,我建議爲縮小/醜化使用Browserify