这个语法是什么意思? anArray [source] .src = sourceImg;

时间:2018-08-17 00:44:34

标签: javascript object encapsulation

var source = 0;
var subtitue = 1;

function rollOver(sourceImg,  subImg) {

    var arrayImg = new Array;

    arrayImg[source] = new Image;
    arrayImg[source].src = sourceImg;
    arrayImg[subtitute] = new Image;
    arrayImg[subtitute].src = subImg;

    return arrayImg;
}

3 个答案:

答案 0 :(得分:0)

anArray是一个数组。

source是数组的索引。 JavaScript可以使用任何值作为索引。

存在Image类型的对象,并将其分配给该索引处的值。

.src将该对象的属性设置为sourceImg的值。

现在输入参数... source设置为0,并且sourceImage已传递到函数中。

因此,arrayIndex[0]被设置为新的Image对象,并且该对象的src属性被设置为发送给函数的sourceImage值。

它可能是这样写的:

let image = new Image()
image.src = srcImage
arrayIndex[0] = image

答案 1 :(得分:0)

这意味着将对象yy的值设置为anArray[source]的值。

sourceImgarrayImg,通常表示为:

Array

var arrayImg = []; 参数是该数组的索引,但是因为它是JavaScript,所以实际上不需要是数字。这会导致混乱和/或问题,例如,如果source您现在有一个包含1000个条目的数组,其中包含许多source = 1000值,那将毫无意义。

这是相当危险的,并且最终是不好的代码。最好将其表示为对象,例如

undefined

(请注意,这仍然令人发指,并且要求固定使用该函数的代码以使其不依赖于位置值,因为这很脆弱。)

最重要的是,如果此JS令您感到困惑,那么SO并不是一个开始的地方,而是您应该阅读一些基本的JavaScript教程并正确学习。

答案 2 :(得分:-1)

https://jsfiddle.net/5qb7dc3w/5/

动态访问对象属性时使用括号表示法。

zenity