gpt4 book ai didi

javascript - 在 Javascript 类中创建全局变量时出错

转载 作者:行者123 更新时间:2023-11-30 06:21:42 25 4
gpt4 key购买 nike

我正在尝试创建一个页面变量,我的 Scroller 类可以使用它进行无限滚动。我认为我需要它是全局的,以便它在 ajax 函数之外记住自己。

class Scroller {
window.page = 1;

constructor(){
this.events();
}

events(){
$(document).on("scroll", this.on_scroll.bind(this))
}

on_scroll(e){
var scroll_top = $(window).scrollTop();
var body_height = $('body').height();
var win_height = $(window).height();
var height_diff = body_height - win_height;


if( (scroll_top+1 >= height_diff) && working==false){
working=true;
console.log("greater than diff");
this.load_more();
}
else{
//console.log(scroll_top);
//console.log("greater than diff");
}

}

我也试过:

var page = 1;
page = 1;
$page = 1;

所有这些都会报错,通常是语法错误。在类中创建全局变量的最佳方法是什么?或传递给正在调用的滚动函数的任何变量。我还需要这些,这样我就可以创建一个“工作”变量,这样 ajax 就不会加载多次。

感谢您的帮助

最佳答案

如果它还没有定义,你可以在构造函数中定义它:

class Scroller {
constructor() {
window.page = window.page || 1;
this.events();
}
}

话虽这么说,这里还是有一股严肃的设计气息。您也可以只在类外部定义变量。

另请注意,它不必是全局的;您可以在类对象本身上定义它并将其称为 Scroller.page:

class Scroller {
/* ... */
}

Scroller.page = 1;

关于javascript - 在 Javascript 类中创建全局变量时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52732845/

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