gpt4 book ai didi

JavaScript 改变 this 的所有权

转载 作者:行者123 更新时间:2023-11-28 20:57:27 27 4
gpt4 key购买 nike

我有一个对象,类似这样

var Egg = function(){

this.test = $(.slider .label);

$('.slider').slider({
min: 1,
value: 2,
step: 1,
value: 10,
slide: function(){
this.test.html(ui.value)
}
});

}

我想在 slider 对象内使用我的变量测试。然而,在当前形式中,this 指的是 slider 而不是我的 Egg 对象,因此在 slider 移动时尝试使用 this.test 会导致未定义。

如何使 this 引用我的对象而不是 slider 。

谢谢

最佳答案

this 具有动态范围,因此在幻灯片函数内 this 指的是调用该函数的任何对象。这不等于定义函数时的值(我不知道我是否说得很清楚......阅读此 http://hoolihan.net/blog-tim/2009/02/17/static-vs-dynamic-scope/ )。但是,您可以将其保存在另一个变量中并以这种方式访问​​它

var Egg = function(){

var self = this;

this.test = $(.slider .label);

$('.slider').slider({
min: 1,
value: 2,
step: 1,
value: 10,
slide: function(){
self.test.html(ui.value)
}
});

}

关于JavaScript 改变 this 的所有权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11803089/

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