gpt4 book ai didi

Javascript变量范围和对象作为参数传递给函数

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

<分区>

我正在使用 Laravel Elixir 和 Laravel-Elixir-SpriteSmith 创建一些 Sprite 图标。我至少有 3 种不同的图标大小存储在不同的文件夹中,因此我尝试遍历这些文件夹并执行为每个文件夹生成 Sprite 的任务:

我的问题是,在传递给 mix.spritesmith 的第二个参数的 cssOpts.cssSelector 函数中,set 的值始终是最后一个值(value)。

代码更好地解释了它:


var sources = [
{ size: 16, source: 'resources/bower_components/famfamfam-silk/dist/png' },
{ size: 22, source: 'resources/assets/icons/22' },
{ size: 38, source: 'resources/assets/icons/38' }
];

for(var i in sources) {
var set = sources[i];

mix.spritesmith(set.source, {
imgOutput: 'public/icons',
cssOutput: 'public/css',
imgName: set.size + '.png',
cssName: 'icons-' + set.size + '.css',
imgPath: '../../icons/' + set.size + '.png',
cssOpts: {
cssSelector: function(item) {
console.log(set.size); //PROBLEM HERE. Always prints 38! Should print 16 - 22 - 38.
return '.icon' + set.size + '-' + item.name.replace('_', '-');
}
}
});
}

我应该怎么做才能在每个循环中将正确的值传递给函数?

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