Мне нужна функция, чтобы ее параметр был объектом, и если я оставлю его пустым, он будет загружать значения по умолчанию.Javascript - функция с дополнительными параметрами как объект?
что-то вроде:
function loadMap(args) { //args is an object and its optional
//this is what I want to do, test args and load defauts if necesary
/*
pseudocode:
if args.latitude is not set then
give it a default value
if args.longitude is not set then
give it a default value
end pseudocode */
alert("Latitude is "+args.latitude);
alert("Longitude is "+args.longitude);
}
//outputs the default values
loadMap();
//outputs custom values
loadMap({latitude: "x.xxxx", longitude: "-x.xxxx"});
//and should work too and output one default and one custom value
loadMap({latitude: "x.xxxx"});
Я нашел это решение в этом вопросе (Is there a better way to do optional function parameters in Javascript?), но это требует JQuery: http://jsfiddle.net/xy84kwdv/
Это почти то, что я хочу, но я не хочу зависеть от функция jquery.
http://jsfiddle.net/f5nqnwc1/ - как вы можете видеть, что не будет вести себя, как и ожидалось, если вы передаете только один пользовательский значение и оставить остальное пустым – JuanBonnett
Адаптировано. Это работает для вас? – Trace
Я протестировал его. И он отлично работает ... код чист, в этом нет ничего сложного, в отличие от других 10000 алгоритмов, чтобы достичь того же ... Ваше решение является лучшим до сих пор! – JuanBonnett