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

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

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

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

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


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

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

Похожие вопросы