Используя код CoffeeScript, который, как утверждает видео, является правильным преобразованием ...
class Money
constructor: (rawString) ->
@cents = @parseCents rawString
... CoffeeScript сгенерирует следующее, что в основном идентично ответу @TJ Crowder:
var Money;
Money = (function() {
function Money(rawString) {
this.cents = this.parseCents(rawString);
}
return Money;
})();
Я просто публикую это, чтобы показать, что CoffeeScript на самом деле делает, и что видео не отражает реальность.
Вы можете увидеть преобразование, если вы Посетите сайт и нажмите кнопку «Попробуйте CoffeeScript».
Пожалуйста, не"примите" этот ответ.
РЕДАКТИРОВАТЬ:
Чтобы добавить частную переменную, использующую область, вы можете сделать это:
class Money
priv=0
constructor: (rawString) ->
@cents = @parseCents rawString
@id = priv++
..., которая будет выглядеть как:
var Money;
Money = (function() {
var priv;
priv = 0;
function Money(rawString) {
this.cents = this.parseCents(rawString);
this.id = priv++;
}
return Money;
})();
Кстати, я ничего не знаю о CoffeeScript.Его синтаксис выглядит сбивающим с толку меня, но, возможно, только потому, что я к нему не привык.
Мне нравится JavaScript таким, какой он есть (особенно с новыми и предстоящими изменениями).