gpt4 book ai didi

javascript - 范围问题/"Undefined is not a function"

转载 作者:行者123 更新时间:2023-11-28 07:47:43 25 4
gpt4 key购买 nike

对于我的新项目,我正在学习如何使用 Javascript 中的对象。到目前为止,我已经把这一切搞得一团糟,希望有人能指出出了什么问题。

我的主要代码:

var self = null;    //to force a local 'self' variable from now on

var Person = function (firstName) {
this.firstName = firstName;

this.user_lat = 0;
this.user_long = 0;
this.user_accur = 0;
this.user_stable = 0;

};

Person.prototype.setCoordinates = function(lat, lng) {
this.user_lat = lat;
this.user_long = lng;
}

Person.prototype.fetchLocation = function() {
var self = this;
navigator.geolocation.getCurrentPosition(self.logPosition, function() { console.log("position fail") }, {enableHighAccuracy: true});
}


Person.prototype.logPosition = function(pos) { //saves coordinates in current person - object
this.setCoordinates(pos.coords.latitude, pos.coords.longitude);
}

index.php 执行以下操作:

var person = new Person("Lorre");
person.fetchLocation();
//do_stuff_with_location_in_object

但是,“setcoordinates”函数失败并给出错误:

Uncaught TypeError: undefined is not a function / main.js:40 / Person.logPosition

我很确定我做错了一些愚蠢的事情,但我整个晚上都在与“这个”作斗争,我越来越绝望......希望你们中的任何人都能看到出了什么问题.

提前致谢!

最佳答案

感谢 dandavis 和 minitech 在评论中提供帮助。 bind(this) 成功了!

this.logPosition.bind(this)

关于javascript - 范围问题/"Undefined is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27235905/

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