- 参数类型的判断:object、数组、某个类的实例、是否为空
- 对象属性的判断:是否包含某个属性,在条件表达式中的使用
export function toLatLng(a, b, c) {
// 若a是LatLng对象
if (a instanceof LatLng) {
return a;
}
// 若a是数组,并且a[0]不是object(对象)
if (Util.isArray(a) && typeof a[0] !== "object") {
//若a的数组长度为3,即可能包含的是:纬度,纬度和高度
if (a.length === 3) {
return new LatLng(a[0], a[1], a[2]);
}
// 若a的数组长度是2,即可能包含的是:纬度,纬度
if (a.length === 2) {
return new LatLng(a[0], a[1]);
}
return null;
}
// 若a为空
if (a === undefined || a === null) {
return a;
}
// 若a是对象,并且包含lat属性
if (typeof a === "object" && "lat" in a) {
// 注意如何对对象的属性进行判断
return new LatLng(a.lat, "lng" in a ? a.lng : a.lon, a.alt);
}
// 若未定义则返回
if (b === undefined) {
return null;
}
return new LatLng(a, b, c);
}
网友评论