了解 jBox 访问数组中的属性
understanding jBox accessing properties in a array
我刚刚浏览了 jBox.js 的代码,发现了以下片段:
var appendImage = function(gallery, id, preload, open) {
if (jQuery('#jBox-image-' + gallery + '-' + id).length) return;
var image = jQuery('<div/>', {
id: 'jBox-image-' + gallery + '-' + id,
'class': 'jBox-image-container'
}).css({
backgroundImage: 'url(' + this.images[gallery][id].src + ')',
backgroundSize: this.options.imageSize,
opacity: (open ? 1 : 0),
zIndex: (preload ? 0 : this.imageZIndex++)
}).appendTo(this.content);
var text = jQuery('<div/>', {
id: 'jBox-image-label-' + gallery + '-' + id,
'class': 'jBox-image-label' + (open ? ' active' : '')
}).html(this.images[gallery][id].label).appendTo(this.imageLabel);
!open && !preload && image.animate({opacity: 1}, this.options.imageFade);
}.bind(this);
现在我的问题是关于一个非常复杂的代码行,它试图访问数组中的某个 属性,我说的是下面的代码行:
this.images[gallery][id].src
上面一行真正试图访问的是哪种数组?我已经工作并访问了如下数组:
var s = [{
a : 'name',
b : 'surname'
}];
val = s[0].a; // "name"
console.log(val);
但是我强调的语法似乎有一些额外的层次结构。抱歉,我仍然是 javascript 新手,我发现很难想象数组是如何像下面这样被访问的。
this.images[gallery][id].src
会是什么样子?那么有人可以给我举个例子吗?并解释?
谢谢。
gallery, id
可能只是字符串,您可以对这些字符串使用以下 属性 访问器:
var gallery = 'galleryx',
id = 'idx';
var images = { 'galleryx': { 'idx': 2 } };
console.log(images[gallery][id]) // === 2
我刚刚浏览了 jBox.js 的代码,发现了以下片段:
var appendImage = function(gallery, id, preload, open) {
if (jQuery('#jBox-image-' + gallery + '-' + id).length) return;
var image = jQuery('<div/>', {
id: 'jBox-image-' + gallery + '-' + id,
'class': 'jBox-image-container'
}).css({
backgroundImage: 'url(' + this.images[gallery][id].src + ')',
backgroundSize: this.options.imageSize,
opacity: (open ? 1 : 0),
zIndex: (preload ? 0 : this.imageZIndex++)
}).appendTo(this.content);
var text = jQuery('<div/>', {
id: 'jBox-image-label-' + gallery + '-' + id,
'class': 'jBox-image-label' + (open ? ' active' : '')
}).html(this.images[gallery][id].label).appendTo(this.imageLabel);
!open && !preload && image.animate({opacity: 1}, this.options.imageFade);
}.bind(this);
现在我的问题是关于一个非常复杂的代码行,它试图访问数组中的某个 属性,我说的是下面的代码行:
this.images[gallery][id].src
上面一行真正试图访问的是哪种数组?我已经工作并访问了如下数组:
var s = [{
a : 'name',
b : 'surname'
}];
val = s[0].a; // "name"
console.log(val);
但是我强调的语法似乎有一些额外的层次结构。抱歉,我仍然是 javascript 新手,我发现很难想象数组是如何像下面这样被访问的。
this.images[gallery][id].src
会是什么样子?那么有人可以给我举个例子吗?并解释?
谢谢。
gallery, id
可能只是字符串,您可以对这些字符串使用以下 属性 访问器:
var gallery = 'galleryx',
id = 'idx';
var images = { 'galleryx': { 'idx': 2 } };
console.log(images[gallery][id]) // === 2