在coffee脚本 Backbone.js 代码中找到的@符号和“->”和“=>”的含义

b5lpy0ml  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(78)

的意义是什么

  • @前缀
    • 〉和=〉之间的区别

我可以找到一些文档吗?很难在谷歌上搜索到这些特殊字符,所以我在这里问一下。[full gist]

class RP.Dashboard.Events.Form extends Backbone.View
  el: '.simple_form.new_event, .simple_form.edit_event, .simple_form#new_event, .simple_form#edit_event'
  events:
    'focus #location_autocomplete': 'geolocate'
  address_component_map:
    street_number:
      key: 'short_name'
      form_field: '#event_address'

  initialize: ->
    @render()
    @init_autocomplete()

  render: ->
    @$(".datepicker" ).datepicker(
      showOn: "button"
      buttonImageOnly: true
      changeMonth: true
      changeYear: true
      format: 'yyyy-mm-dd'
      dateFormat: 'yy-mm-dd'
    )
    @$(".timepicker").timepicker()
    @$('.input-timepicker').timepicker({minuteStep: 1,showSeconds: false,showMeridian: true,defaultTime: '8'});

  fill_in_address: =>
s3fp2yjn

s3fp2yjn1#

在Google上搜索“coffeescript at sign”会得到Does the '@' symbol have special meaning in Javascript, Coffeescript or Jquery?作为最佳结果。@在coffeescript中表示this


## coffeescript

self = @ 

## javascript

var self = this

关于-〉和=〉之间的区别,在Google上搜索“cofeescript -〉”返回的顶部链接是:
CoffeeScript, When to use fat arrow (=>) over arrow (->) and vice versa
要从此处复制和粘贴,请执行以下操作:
在定义方法时,我发现胖箭头的主要用例是当你想使用一个方法作为回调函数,并且该方法引用示例字段时:

class A
  constructor: (@msg) ->
  thin: -> alert @msg
  fat:  => alert @msg

x = new A("yo")
x.thin() #alerts "yo"
x.fat()  #alerts "yo"

fn = (callback) -> callback()

fn(x.thin) #alerts "undefined"
fn(x.fat)  #alerts "yo"
fn(-> x.thin()) #alerts "yo"

正如您所看到的,如果不使用胖箭头,将引用作为回调传递给示例的方法时可能会遇到问题,这是因为胖箭头将对象的示例绑定到这个方法,而细箭头则不这样做,因此像上面那样作为回调调用的细箭头方法不能访问示例的字段(如@msg),也不能调用其他示例方法。最后一行是针对使用细箭头的情况的解决方法。

相关问题