Пытаясь выяснить, лучший подход, чтобы иметь эту работу:CoffeeScript объекты, JQuery обратного вызова и переменных конфликты сферы применения и путаница
class Person
constructor: (@el) ->
@el = $(el)
this.bind()
bind: ->
@el.find('.something').on 'click', ->
$(this).hide() # conflict!
this.do_something() # conflict!
do_something: ->
alert 'done!'
Я знаю, что я могу использовать хэш ракеты (=>) и затем доступ this.do_something
из моего обратного вызова, но тогда это конфликтует с callback 'this'
, и поэтому jquery пытается выбрать объект, а не element '.something'
. Как это решить?
Это лучший подход? Спасибо, кстати. –
@ Zenph Да, это лучший (наиболее читаемый) подход. Вы не можете использовать 'this' для указания на разные объекты в том же контексте. –
Я понимаю контекст;) Хотел бы, чтобы у CS или jQuery была переменная прокси для этого для таких конфликтов. –