gpt4 book ai didi

javascript - 如何使 jQuery 构造函数属性全局可见

转载 作者:行者123 更新时间:2023-11-28 03:29:05 26 4
gpt4 key购买 nike

我正在尝试使用标准 Navigator.geolocation 属性和 jquery 来获取位置坐标变量,因此我可以稍后在代码中使用该值:


$(document).ready(function(){

$.getlocation = function(){
navigator.geolocation.getCurrentPosition($.getPosition,$.error);
}

$.getVariables = function(lat,lon){
this.lat = lat; // i want these to be visible
this.lon = lon;
}

$.getPosition= function(position){
console.log("latitude:" +position.coords.latitude+ " longitude: "+position.coords.longitude);
//this function will be executed once position is determined.


$.getVariables(position.coords.latitude,position.coords.longitude);
}

$.error = function(){alert("error");}

$.getlocation(); // outputs correctly

setTimeout(()=>{console.log(this.lat)},5000); // undefined

});

我希望获得位置输出,但我从 console.log(this.lat) 得到 undefined,我确实在普通 JavaScript 中尝试过这个,它工作得很好,这是 JavaScript 代码:

function locateMe() {

if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(getPosition, error);
} else {

alert("connection problem");
}
}

let vars = function(lat, lon) {
this.lat = lat;
this.lon = lon;
}

let getPosition = function(position) {
vars(position.coords.latitude, position.coords.loongitude);
}


let error = function(msg) {
console.log("problem");
}

locateMe();

setTimeout(() => { console.log(this.lat); }, 5000); //correct output

最佳答案

如果我将 getVariables 更改为:

,我就可以使 this.lat 正常工作
$.getVariables = function(lat,lon){
document.lat = lat;
document.lon = lon;
}

看来两个 this 对象在两个方法中可能引用不同的事物。

关于javascript - 如何使 jQuery 构造函数属性全局可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58331647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com