这个语法是什么意思? anArray[source].src = sourceImg;
what does this syntax mean? anArray[source].src = sourceImg;
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;
}
anArray
是一个数组。
source
是数组的索引。 JavaScript 可以使用任何值作为索引。
Image
类型的对象存在并分配给该索引处的值。
.src
将该对象的属性设置为 sourceImg
的值。
现在参数...
source
设置为0,sourceImage
传入函数。
因此 arrayIndex[0]
被设置为一个新的 Image
对象,并且该对象的 src
属性设置为发送到函数中的 sourceImage
值。
可以这样写:
let image = new Image()
image.src = srcImage
arrayIndex[0] = image
表示将anArray[source]
处的对象的值设置为sourceImg
处的值。
这里的arrayImg
是一个Array
,一般表示为:
var arrayImg = [];
source
参数是该数组的索引,但因为它是 JavaScript,所以它实际上不需要是数字。这会导致混淆 and/or 问题,例如,如果 source = 1000
你现在有一个包含很多 undefined
值的 1000 条目数组,这毫无意义。
这是相当冒险的,而且最终是糟糕的代码。最好用对象表示,例如
function rollOver(srcImg, subImg) {
var img = new Image();
img.src = srcImg;
var sub = new Image();
sub.src = subImg;
return {
main: img,
sub: sub
};
}
(请注意,这仍然令人发指,并且需要修复使用该函数的代码,使其不依赖于值的位置,因为这很脆弱。)
底线是,如果这个 JS 让您感到困惑,那么 SO 不是开始的地方,您应该查看一些基本的 JavaScript 教程,然后正确地学习它。
https://jsfiddle.net/5qb7dc3w/5/
我在动态访问对象的属性时使用括号表示法。
const obj = {
id: "user",
password: "password"
};
Object.keys(obj)
.forEach(function(key) {
const val = obj[key];
document.querySelector(`input[name="${key}"]`).value = val;
});
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;
}
anArray
是一个数组。
source
是数组的索引。 JavaScript 可以使用任何值作为索引。
Image
类型的对象存在并分配给该索引处的值。
.src
将该对象的属性设置为 sourceImg
的值。
现在参数...
source
设置为0,sourceImage
传入函数。
因此 arrayIndex[0]
被设置为一个新的 Image
对象,并且该对象的 src
属性设置为发送到函数中的 sourceImage
值。
可以这样写:
let image = new Image()
image.src = srcImage
arrayIndex[0] = image
表示将anArray[source]
处的对象的值设置为sourceImg
处的值。
这里的arrayImg
是一个Array
,一般表示为:
var arrayImg = [];
source
参数是该数组的索引,但因为它是 JavaScript,所以它实际上不需要是数字。这会导致混淆 and/or 问题,例如,如果 source = 1000
你现在有一个包含很多 undefined
值的 1000 条目数组,这毫无意义。
这是相当冒险的,而且最终是糟糕的代码。最好用对象表示,例如
function rollOver(srcImg, subImg) {
var img = new Image();
img.src = srcImg;
var sub = new Image();
sub.src = subImg;
return {
main: img,
sub: sub
};
}
(请注意,这仍然令人发指,并且需要修复使用该函数的代码,使其不依赖于值的位置,因为这很脆弱。)
底线是,如果这个 JS 让您感到困惑,那么 SO 不是开始的地方,您应该查看一些基本的 JavaScript 教程,然后正确地学习它。
https://jsfiddle.net/5qb7dc3w/5/
我在动态访问对象的属性时使用括号表示法。
const obj = {
id: "user",
password: "password"
};
Object.keys(obj)
.forEach(function(key) {
const val = obj[key];
document.querySelector(`input[name="${key}"]`).value = val;
});