@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, отчего в будущем это может привести к регрессии веб-приложения


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

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
20 янв. 2021, в 14:10
2000 руб./за проект
20 янв. 2021, в 13:55
10000 руб./за проект
20 янв. 2021, в 13:22
3000 руб./за проект