gpt4 book ai didi

javascript - 为什么函数会在对象字面量中自调用?

转载 作者:行者123 更新时间:2023-11-28 13:31:03 25 4
gpt4 key购买 nike

jQuery(为了简单起见,进行了分段)

interval 属性在对象文字 slider 中包含一个 setInterval() 函数,interval 中定义的 setInterval() 正在调用自身,或者至少看起来是,但是为什么呢?

 var slider = {
config : function(imgs, callback){
//mandatory
var images = $(imgs);

//optional
var animationInterval;
var animationTime;

callback(images);
},
target : 0,
get lastElem(){
return this.images.length-1;
},
interval : setInterval(function () {
setSlider();
}, 3000)
};

slider.config('ul.images li', setConfig);
slider.images.hide().first().show();

function setConfig(imgs){
slider.images = imgs;
}

function setSlider(dest) {
slider.target === slider.lastElem ? slider.target = 0 : slider.target++;
slider.images.hide().eq(slider.target).fadeIn(1000);
slider.triggers.removeClass('active').eq(slider.target).addClass('active');
}

JSFiddle

最佳答案

当您创建对象文字时,您输入的值将作为表达式进行计算。

function square(x) {
return x * x;
}

var lookup = {
'two': square(2)
};

console.log(lookup['two']); // 4

在这里,您调用的是 setInterval 而不是 squaresetInterval 接受一个函数和周期并安排该函数重复运行。它返回调度的数字标识符,以便您稍后可以使用 clearInterval 停止它。例如,您可以稍后执行 clearInterval(slider.interval); 来阻止调用 setSlider。

关于javascript - 为什么函数会在对象字面量中自调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873807/

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