我需要一个函数,它的参数是一个对象,如果我将其保留为空,它将加载默认值。

就像是:

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函数。

最佳答案

您是否正在寻找类似的东西:

function loadMap(args) {
    args = args || {};
    args.latitude = args.latitude || "X.XXX";
    args.longitude = args.longitude || "Y.YYY";
    alert(args.latitude);
    alert(args.longitude);
};

loadMap({latitude:"custom_latitude"});

10-05 20:39
查看更多