Задать вопрос

Что правильнее: Передача всего объекта в функцию или передача отдельных значений?

Из двух вариантов что будет правильнее, почему и в соответствии с чем?

var obj = {paramOne: 1, paramTwo: 'test'};

(function foo(obj) {
    var param = obj.paramOne;
    return param;
})(obj);

(function bar(param){
    return param;
})(obj.paramOne);


UPD: Следует уточнить, что в полевой обстановке передаются не значения, а ссылки. Просто было лень расписывать пример)
Также есть связанный вопрос: Насколько сильно отличаются затраты на передачу одной или нескольких ссылок?
  • Вопрос задан
  • 681 просмотр
Подписаться 5 Простой 2 комментария
Решения вопроса 2
BRAGA96
@BRAGA96
Производительней будет передавать отдельнве аргументы вместо одного объекта. Если посмотреть исходный код реакта, то в некоторых часто вызываемых функциях можно увидеть больше 7 аргументов. Все из-за аллокации объектов, сборки муссора. Но я не думаю что в вашем коде это сыграет большую роль, врятли у вас найдется функция, которая вызывается пару тысяч раз
Ответ написан
chakaponi
@chakaponi Автор вопроса
Нашёл ответ в книге от автора Николас Закас "JavaScript для профессиональных веб-разработчиков (3-е изд.)" на странице 138 (в переведённом варианте): Для большого количества необязательных параметров -- передача объекта. Для малого количества обязательных параметров -- передача именованных аргументов
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Forked
Обычно передача ссылки на объект в интерпретаторах реализована как передача указателя. Затраты на его передачу минимальны.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 13:22
30000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект
18 дек. 2024, в 12:22
5000 руб./за проект