У меня есть простое наследование. Однажды начавшись, я могу узнать, какой класс он, глядя вверх имя конструктора:как ссылаться на имя класса расширенного класса из базового класса (this.contextor.name) в CoffeeScript или JavaScript
someClass = new SomeClass()
console.log someClass.constructor.name //SomeClass
base = new Base()
console.log base.constructor.name //Base
Я хотел бы получить доступ к имени класса текущего объекта в классе Base в методе сохранения() для пример:
class Base
constructor: (obj) ->
...
save: (fn) ->
@constructor.name
Как вы видите, я пытаюсь сделать это через «@ constructor.name», но это не работает. Короче говоря, я хотел бы ссылаться на имя расширенного класса из базового класса. Как это сделать? Спасибо
Может быть полезно: http://coffeescript.org/#classes –
То, что вы делает работу (за исключением http://jsfiddle.net/bYUwM/ – bfavaretto
Возможно, вы вызываете 'save', когда он не привязан к экземпляру' Base'? Попробуйте заменить 'save: (fn) ->' на 'save: (fn) =>' и посмотреть, исправляет ли это его. Также попробуйте 'console.log this' в вашей' save' функции, чтобы увидеть, что это на самом деле в то время, когда вы вызываете эту функцию. –