我正在关注此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