2013-02-04 73 views
0

本地JavaScript:它調用生成的JavaScript和CoffeeScript的

var Person; 
Person = Backbone.Model.extend({}); 

此代碼工作正常,如果我在谷歌瀏覽器的控制檯寫var person = new Person;

main.coffee

Person = Backbone.Model.extend({}) 

生成的main.js

// Generated by CoffeeScript 1.4.0 
(function() { 
    var Person; 

    Person = Backbone.Model.extend({}); 

}).call(this); 

如果我寫在谷歌瀏覽器控制檯:

var person = new Person; 
ReferenceError: Person is not defined 

如何創建從控制檯生成的JavaScript,而不是原生的JavaScript一個實例?

+0

'var person = new Person();'我認爲 – mplungjan

+3

'Person'在全局範圍內不可見。你可以試試'window.Person = Backbone.Model.extend({})'。 – neuront

+0

@neuront這是正確的!謝謝。 – hyperrjas

回答

3

CoffeeScript默認將所有代碼封裝在函數中以避免污染全局名稱空間。您可以使用-b/--bare標誌編譯代碼以避免此包裝,或者使用window.Person = Backbone.Model.extend({})手動進行全局編碼,這是在CoffeeScript中執行所需操作的常用方法。

+0

這是正確的。謝謝! – hyperrjas

相關問題