如果each
在 dom 元素上使用,this
则每个内部都有对 dom 元素的引用
例如:
Playlist.prototype.display = function(e)
{
$('.episodeList').each(function(index) {
console.log(this)
});
}
console.log
打印 dom 元素,它是正确的。现在将控制台日志放在每个外部,如下所示:
Playlist.prototype.display = function(e)
{
console.log(this)
$('.episodeList').each(function(index) {
});
}
现在console.log
应该打印 PlayList 函数(你的类)。因此,每个范围内的“this”都引用了 dom 元素,但Playlist.prototype.display
范围内的 this 引用了 Playlist 函数。
解决方案是:
Playlist.prototype.display = function(e)
{
var self = this;
$('.episodeList').each(function(index) {
console.log(self)
console.log(this)
});
}
您需要从 Playlist 范围中获取“this”并将其属性赋予 self var,因此现在 self 可以参考 Playlist。现在你做每一个,所以当前每个中的 this 都引用了 dom 元素,但 self 变量仍然引用了播放列表。