0

我一直在进行一些试验,并且遇到过几次通过循环应用 CS“类”似乎是有意义的情况。

例如:

if ($areas = $('.itemParent')).length >= 1
    class SomeClass
        constructor: (el) ->
            @$parent = el
            @$overflow = el.find('.overflow')
            @$items = @$overflow.find('.item')

            @max = @$items.length - 1
            @current = 0

        # Gets us to an area
        goToItem: (i) ->
            @$overflow.animate
                scrollLeft: @$items.eq(i).position().left
            , 450, 'easeInOutQuad'

        # Binds each item
        bindItems: ->
            @$parent.find('.item').bind 'click tap', (e) =>
                el = $(e.target).parents('.item')

                @$items.removeClass('active')
                el.addClass('active')

                @goToItem(el.index())
            @

    # Iterate and apply the structure to all areas
    $areas.each -> 
        area = new SomeClass($(@))
        area.bindItems()

它似乎比“全局”绑定它们更有条理。这是一种糟糕的方法吗?

4

1 回答 1

1

类背后的想法Coffeescript是在全局或模块中定义它们。

在另一种类型的范围内定义一个类有点忽略了这一点。

Coffeescript类鼓励将ruby类视为与实例分离的更加式的视图,同时保留您从能够以您认为合适的方式应用它们而获得的权力。

简而言之,最好Coffeescript在顶层使用类,或者从模块中导出和请求它们。

于 2012-11-22T03:00:24.630 回答