Вернуть has с классом coffeescript

javascript coffeescript

26 просмотра

1 ответ

Я хочу обернуть некоторые параметры pliugin в js класс, используя Coffeescript.

В простом JS у меня есть

toastr.options = {
  "closeButton" : false,
  "debug" : false,
  "positionClass" : "toast-bottom-right",
  "onclick" : null,
  "showDuration" : "300",
  "hideDuration" : "1000",
  "timeOut" : "8000",
  "extendedTimeOut" : "1000",
  "showEasing" : "swing",
  "hideEasing" : "linear",
  "showMethod" : "fadeIn",
  "hideMethod" : "fadeOut"
}

С кофе

class @ToastrOptions
  constructor: ->
    'closeButton': false
    'debug': false
    'positionClass': 'toast-bottom-full-width'
    'onclick': null
    'showDuration': '300'
    'hideDuration': '1000'
    'timeOut': '8000'
    'extendedTimeOut': '1000'
    'showEasing': 'swing'
    'hideEasing': 'linear'
    'showMethod': 'fadeIn'
    'hideMethod': 'fadeOut'

 toastr.options = new ToastrOptions

Когда я проверяю toastr.options, бланк {}. Почему?

Автор: Roberto Pezzali Источник Размещён: 08.11.2019 11:08

Ответы (1)


0 плюса

Решение

Код ниже определяет класс ToastrOptions. У него есть toHashопределенный метод, который возвращает простой js-объект с предопределенными значениями. Обращаясь к вашему коду - вы помещаете это определение простого объекта непосредственно в метод конструктора, который не может работать, потому что результатом new AnyClassвсегда является новый экземпляр этого класса, независимо от того, что вы помещаете в метод конструктора.

Код ниже протестирован на http://coffeescript.org/

class ToastrOptions
  toHash: ->
    closeButton: false
    debug: false
    positionClass: 'toast-bottom-full-width'
    onclick: null
    showDuration: '300'
    hideDuration: '1000'
    timeOut: '8000'
    extendedTimeOut: '1000'
    showEasing: 'swing'
    hideEasing: 'linear'
    showMethod: 'fadeIn'
    hideMethod: 'fadeOut'


console.log(new ToastrOptions().toHash())
Автор: djaszczurowski Размещён: 20.08.2016 10:11
Вопросы из категории :
32x32