gpt4 book ai didi

javascript - 在 esquire JS 中更改 'this' 的范围

转载 作者:行者123 更新时间:2023-11-28 15:48:18 24 4
gpt4 key购买 nike

当屏幕尺寸较小时,我尝试使用 enquire.js 触发 bxslider 的重新加载,以显示更少的图像。

我注册的屏幕宽度如下。

enquire.register("screen and (max-width:900px)", {
match: this.ChangeSliderDown,
unmatch:this.ChangeSliderUp
});

现在,作为转换的一部分,我需要根据与当前类的原型(prototype)关联的变量进行计算。

ChildCarousel.prototype = {
...

ChangeSliderUp: function()
{
var maxSlides = (this.ourCarouselCollection.length < 3) ? 1 : 3;
...
}
}

在引用 this 的所有其他函数中,我可以访问 enguire js 实例中的变量,例如 ourCarouselCollection,我得到的对象是注册调用的结果。

为什么会发生这种情况?是否可以改变它?

最佳答案

添加绑定(bind)(此方法解决了问题

enquire.register("screen and (max-width:900px)", {
match: this.ChangeSliderDown.bind(this),
unmatch:this.ChangeSliderUp.bind(this)
});

关于javascript - 在 esquire JS 中更改 'this' 的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21446730/

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