gpt4 book ai didi

javascript - 访问变量

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

当我在 positionSlides 方法上执行控制台跟踪时,它显示 slideShow 为未定义。当我在 document.ready 回调中清楚地实例化它时,这怎么可能。我还确保将此变量设置为全局变量,以便 slideShow 和 slideShowNavigation 都可以访问这两个变量。

var slideShow, slideShowNavigation;

$(document).ready(function(){

slideShow = new SlideShow( $('#header #slideshow'), 980 );
slideShowNavigation = new SlideShowNavigation( $('#header').find("#leftArrow"), $('#header').find("#rightArrow") );

});


// SLIDE SHOW CLASS
function SlideShow( divContainer, slideWidth ){
// Check to make sure a new instance is created
if( ! (this instanceof SlideShow) ) return new SlideShow();

this.$imageContainer = divContainer;
this.slideWidth = slideWidth;
var maxImages = this.$imageContainer.children().length;

this.getMaxSlides = function(){
return maxImages;
}

this.positionSlides();

}

SlideShow.prototype.positionSlides = function(){
console.log('imageContainer = '+slideShow);
}

SlideShow.prototype.update = function( dir ){

}


// ARROW NAVIGATION FOR SLIDESHOW

function SlideShowNavigation( left, right){
if( ! (this instanceof SlideShowNavigation) ) return new SlideShowNavigation();

//this.updateArrows( slideShow.$imageContainer.find(":first") );

}

SlideShowNavigation.prototype.updateArrows = function( item ){

}

最佳答案

问题是这样的:

slideShow = new SlideShow( $('#header #slideshow'), 980 );

该行调用您的 SlideShow 函数,该函数调用 positionSlides(),后者查找 slideShow,但 slideShow 直到您定义SlideShow 函数返回。

相反,在 positionSlides() 中使用 this 而不是 slideShow 来引用实例(这样您的类就独立于变量名。

关于javascript - 访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6550364/

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