gpt4 book ai didi

javascript - jquery多次运行时缓存元素一次

转载 作者:行者123 更新时间:2023-12-02 17:50:14 24 4
gpt4 key购买 nike

我很好奇cachevar()是否会缓存el元素一次或每次运行它时?

function cachevar() {
var el = $('.element')
el.toggleClass('open')
}
cachevar();

最佳答案

每次调用它时都会分配一个新变量。

所以它不会“缓存”任何东西。

如果您需要一个计划多次调用的函数并希望缓存它使用的元素,则需要将它们移动到闭包中:

var el = $('.element');
function cachevar() {
el.toggleClass('open')
}
cachevar();
cachevar();

通过这样做,cachevar 将访问相同的 el 对象。

如果没有将对象放在闭包中,则无法缓存它们。如果您不想让 el 破坏您当前的作用域,您可以将其包装在所谓的 IIFE(立即调用函数表达式)中,以便它创建一个新的作用域:

var cachevar = (function () {
var el = $('.element');
return function () {
el.toggleClass('open')
}
}());
// el is undefined here
cachevar();
cachevar();

关于javascript - jquery多次运行时缓存元素一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21427308/

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