window 对象中的 position.coords.latitude 在哪里?

Where is position.coords.latitude in the window object?

鉴于这些用于确定用户位置的函数:

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } 
    else {
        alert("Geolocation is not supported by this browser.");
    }
}

function showPosition(position) {
    var lat = position.coords.latitude;
    var lon = position.coords.longitude;
}

我对它的工作原理有深入的了解,但我终生无法找到 window 对象中 position.coords.latitude 的来源。

它在 window.position.coords.latitude.. 或者在 window.navigator.geolocation..

的某个地方是有意义的

但是当我 console.log window 时,它没有出现在任何一个位置。

它位于 window 对象的什么位置?

如果您在控制台中执行 navigator.geolocation.getCurrentPosition(data => console.log(data)),将出现一条警告,要求您确认是否要共享您的位置。按允许。然后您会在控制台中看到 getCurrentPosition() returns 一个包含 coords 属性 的对象。 coords 也是一个具有 latitudelongitude(以及一些其他属性)的对象。

navigator.geolocation.getCurrentPosition()

是一个异步函数。 如果您看到 navigator.geolocation.getCurrentPosition((a)=> console.log(a.timestamp)) 回调响应也包含时间戳。

因为这个 API 每次被调用时都会获取 co-ordinates,所以它不会存储或缓存 lat/long

希望这能回答您的问题。

了解更多信息refer