О Разделении Подпрограмм И Данных

NLP

Member
24.02.2014
5
0
#1
var y = function() { var x = 0 }

организм чувствует некоторый подвох в этом операторе - какой то он не отогональный чтоли
(может ктонибудь мне обяснит что это за зверь такой: и зачем он нужен при возможности динамичного объявления свойств: как и delete зачем нужен если есть сборщик мусора который придуман то для того чтобы не задумываться о добавлении и удалении памяти - короче я подозреваю что как то не всё складно в родном жаваскрипте)

внутри функции он создает локальные переменные которые используемые и видимые только порождающей функцией

а внутри глобального объекта он создает непонятные неудаляемые переменные

также организм отвергает замыкания и прочую трудную хрень - душа просит нормального структурного программирования с ооп

отсюда вопрос - что если совсем отказаться от создания локальных переменных функции и например использовать функции только как методы объектов, методы которые используют для своей работы свойства-переменные своего объекта - то есть ограничиться такой упрощенной ооп архитектурой: когда есть только объекты и их методы и их свойства, то есть когда всегда есть разделение данных и подпрограмм внутри объекта при этом есть глобальный объект и его методы и глобальные переменные для данных используемых глобальными методами

это получается некое упрощенное подмножество жаваскрипта, без упора на замыкания
- жизнеспособен ли такой воображаемый диалект?

языки делятся ли по этому признаку - по разделенности подпрограмм от структур данных ?
ну это как разделение структуры от оформления и от логики...

есть ли в природе такие ЯП в которых есть такое разделение
 

vital

Больной Компом Детектед
29.01.2006
2 432
33
#2
Ну пишите без замыканий. В чем проблема то?
Одна из особенностей js-а, это его гибкость, можно писать как кому удобно, как и С, дает возможность самому себе стрелять в ногу. Только это лишний гемморой.

delete сам по себе память не очищает, память очищает таки сброщик мусора. Грубо говоря - delete удаляет только ссылку на свойство из объекта.
Для просмотра контента необходимо: Войти или зарегистрироваться


А вообще, ну попишите на Go или Dart-e. Может больше понравится :)