在序列化之前评估参数

时间:2011-11-07 17:23:50

标签: javascript jquery

我正在构建一些函数来检索数据,无论你是否提供了一些参数。它主要用于地理定位器功能。由于它可能提供(或不提供)位置,该功能应该能够处理,但我无法做到。

以下是代码:

function getData(position,line,limit,attach){
        var JSONurl = 'getter.php';
        var params = [
            {   get: "stations",
                line: line,
                limit: limit,
                lat : position.coords.latitude,
                lng : position.coords.longitude
            }
        ];            
        console.log($.param(params));
    }

但它发生了两件事,$ .param(params)给我未定义,而且,当没有提供位置时(所以position为null)它给了我一个错误,它无法检索.cords oa null value(很好)。

我怎么解决这个问题?

1 个答案:

答案 0 :(得分:1)

不确定这是否是最佳解决方案,但您可以选择

var params = [
            {   get: "stations",
                line: line,
                limit: limit,
                lat : (function(){
                    try {
                        return position.coords.latitude;
                    }
                    catch(e){
                        return null;
                    }
                })(),
                lng : (function(){
                    try {
                        return position.coords.longitude;
                    }
                    catch(e){
                        return null;
                    }
                })()
            }

当然,您也可以使用非匿名解决方案