@lem_prod

Как сделать такую функцию?

Наткнулся на репозиторий с заданиями по программированию от разных компаний https://github.com/splincode/codework , там есть задание "JS-фреймворк для работы с css классами dom элементов", в его описании https://github.com/splincode/codework/tree/master/...
первое что нужно организовать это выборку, но как добиться такого синтаксиса я понятия не имею

dom = ('#id'); // => получам id элемент 
dom = ('.class'); // => получам элементы c определенным классом
dom = ('tag'); // => получам все теги

('article').css('padding'); // "10px"
('article').css(); // ассоциативный массив свойств
('article').css().toString('css'); // "width: 130px; height: 130px; padding: 10px"


как можно сделать функцию вообще без имени?
  • Вопрос задан
  • 261 просмотр
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Вызов ('article') трактуется js не как функция, а как создание объекта типа String, в который "фреймворк" накостылял своих методов.

Микропример:
// Расширяем стандартный объект:
String.prototype.foo = function () {console.log('Foo', arguments)};

// И вызываем метод на строке:
('').foo('bar')

// Предыдущий вызов аналогичен этому:
String('').foo(42)


Это легко понять, прочитав readme по ссылке:
Недостатки
Расширение базовой структуры данных String, отчего в будущем это может привести к регрессии веб-приложения


Не говоря уже о том, что прямо в репозитории, на который вы далии ссылку, лежит, мать его, код этого "фреймворка"!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы