Это вспомогательная функция, которую я определяю для создания свойств в моих классах:
###
# defines a property on an object/class
# modified from https://gist.github.com/746380
###
Object::public = (name, options = {}) ->
options['default'] ?= null
variable = options['default']
getter = if typeof options['get'] is 'function' then options['get'] else -> variable
setter = if typeof options['set'] is 'function' then options['set'] else (value) -> variable = value
config = {}
config['get'] = getter if options['get']
config['set'] = setter if options['set']
config['configurable'] = no
config['enumerable'] = yes
Object.defineProperty @prototype, name, config
Внутри файла у меня есть два класса ниже, Folds и _Folds, последний скрыт, и только первый экспортируется (с пространством имен) в глобальный.
###
Public exported fetcher for fold factory,
being the only way through which to create folds.
###
class Folds
_instance = undefined
# static fetch property method
@public 'Factory',
get: -> _instance ?= new _Folds
###
Encapsuled singleton factory for one-stop fold creation
###
class _Folds
constructor: ->
create: -> new Fold
Тогда, когда я пытаюсь это сделать, он возвращает false. Почему?
console.log 'Factory' of Folds
Следующее возвращает "function Folds () {}"
console.log Folds
Я не могу вызвать Folds.Factory.create (), потому что Folds.Factory не определена.