Из двух вариантов что будет правильнее, почему и в соответствии с чем?
var obj = {paramOne: 1, paramTwo: 'test'};
(function foo(obj) {
var param = obj.paramOne;
return param;
})(obj);
(function bar(param){
return param;
})(obj.paramOne);
UPD: Следует уточнить, что в полевой обстановке передаются не значения, а ссылки. Просто было лень расписывать пример)
Также есть связанный вопрос: Насколько сильно отличаются затраты на передачу одной или нескольких ссылок?