gpt4 book ai didi

关于 "this"的 JavaScript 问题

转载 作者:太空宇宙 更新时间:2023-11-04 15:35:29 24 4
gpt4 key购买 nike

我正在尝试构建一个游戏恶魔,当我尝试将 clickEventHanlder 添加到按钮时遇到问题,代码如下:

function GameConstructor(){
this.start = startGame;
this.count = 5;
...
function startGame(){
if(this.count > 5){ //here goes the problem, this don't point to the game object when I click the button
...
}
}
...
var game = new GameConstructor(); //game object has a method called start
$("#someBtn").click(game.start); //in the method start this now point to the button so this.count is undefined.

我知道我可以定义一个全局变量 count = 5 来解决这个问题,但我只是想知道是否有办法以我原来的方式修复?谢谢。

最佳答案

我不是一个完整的 JavaScript 向导,但我的猜测是嵌套函数中的 this 指的是该嵌套函数,而不是外部实例。

许多人选择创建一个 self 变量,以便更明确地了解此范围内容。也许可以试试这个:

function GameConstructor(){
var self = this; // <-- here, then reference self subsequently
self.start = startGame;
self.count = 5;
...
function startGame(){
if(self.count > 5){ //here goes the problem, this don't point to the game object when I click the button
...
}
}

关于关于 "this"的 JavaScript 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44407966/

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