我正在關注此railscast https://www.youtube.com/watch?v=ltoPZEzmtJA,但我不使用coffeescript。我試圖將咖啡轉換爲JavaScript,但我遇到了問題。將coffeescript函數轉換爲javascript
CoffeeScript的
jQuery ->
new AvatarCropper()
class AvatarCropper
constructor: ->
$('#cropbox').Jcrop
aspectRatio: 1
setSelect: [0, 0, 600, 600]
onSelect: @update
onChange: @update
update: (coords) =>
$("#crop_x").val coords.x
$("#crop_y").val coords.y
$("#crop_w").val coords.w
$("#crop_h").val coords.h
js.erb文件
$(document).ready(function() {
$('.crop-image').on('click', function() {
$('#cropbox').Jcrop({
aspectRatio: 1,
setSelect: [0, 0, 100, 100],
onSelect: update,
onChange: update
})
});
update: (function(_this) {
return function(coords) {
$('.user').val(coords.x);
$('.user').val(coords.y);
$('.user').val(coords.w);
return $('.user').val(coords.h);
};
})(this)
});
我不明白爲什麼他決定做一個類,並認爲這將是更爲複雜的整體轉換事情。我遇到的麻煩是更新功能。我只是把咖啡腳本的更新功能插入轉換器並使用輸出。這是導致錯誤說沒有定義更新。我哪裏錯了?
還有一個問題:他在這裏上課的意義何在?
謝謝!
您可以使用此轉換http://js2.coffee/ –
「爲什麼要使用類,你可以用C寫!「 – metalim
我一直在閱讀Javascript的好的部分和「構建一個類的方法」在那裏與隱私的優勢,即暴露一個對象的更少的屬性 – engineerDave