2013-06-09 4 views
0

Я довольно новичок в coffeescript, хотя хочу научиться, чтобы оптимизировать свой рабочий процесс в будущем.переход на coffeescript с javascript и правильное использование объектов

Проблема заключается в том, что я пропускаю некоторые понятия, например

var foo = { 
    init: function() { 
     this.ui.build(); 
     this.bindEvents(); 
    }, 
    bindEvents: function() {} 
    ... 
} 

$('document').ready(function(){ 
    foo.init(); 
}) 

переводится как это в CoffeeScript

foo = 
    init: -> 
    @.ui.build(); 
    @.bindEvents(); 
    bindEvents: -> 
    ... 
    ... 

$('document').ready(-> 
    foo.init(); 
) 

Что я сделал не так? Каковы ваши предложения по созданию объектов?

+0

Что заставляет вас думать, что вы сделали что-то не так? –

+0

потому что он говорит, что foo не определен. –

+0

Кажется, все в порядке для меня: http://jsbin.com/ipugin/1/edit/. Возможно, проблема в коде, который вы не кодировали. –

ответ

1

Coffescript позволяет вам определять классы.

class Foo 
    constructor: -> 
     @ui.build() 
     @bindEvents() 
    bindEvents: -> 
    ... 
    ... 



$('document').ready() -> 
    foo = new Foo 

Вы не должны использовать @.field обозначения. Вместо этого используйте @field.

Смежные вопросы