Riim, в любом случае - в скобках - (...) - может быть только FE.
Сообщение от LowCoder
|
JavaScript мне кажется "диким" языком
|
собственно, ровно то же самое, можно было сделать обычной FD:
function initDragMaster() {
// private методы и свойства
var dragObject
function mouseDown(e) {
клик на переносимом элементе: начать перенос
}
function mouseMove(e){
if (dragObject) {
отобразить перенос объекта
}
}
function mouseUp(e){
if (dragObject) {
конец переноса
}
}
// public методы и свойства
return {
init: function() {
// инициализовать контроллер
document.onmousemove = mouseMove
document.onmouseup = mouseUp
},
makeDraggable: function(element){
// сделать элемент переносимым
element.onmousedown = mouseDown
}
}
}
var dragMaster = initDragMaster();
Здесь есть основной минус - функция initDragMaster остаётся жить в глобальном пространстве, даже, когда она уже не нужна. Поэтому, обычно, для создания инициализующего скопа, и создают (анонимную) FE, которая выполнится сразу после создания и уничтожится (тем не менее, весь её внутренний контекст будет доступен в возвращённом объекте; но это уже тема про замыкания).
Сообщение от Riim
|
но в основном проблемы из-за прототипирования вместо стандартного ООП, т. е. основные проблемы у вас еще впереди.
|
Да ладно, не пугайте заранее
Ничего там сложного нет. Не устану повторять, что разница "Класс" vs. "Прототип" не столь существенна, как "Статика" vs. "Динамика". Ну да, в случае с С++, будет казаться нечто странным поначалу. А, например, тем, кто пришел в JS из Python - что прототипы, что классы - особой разницы не заметят, т.к. Pyhton тоже полностью динамичный.