在标记为1)和2)的脚本的行中,在我评论的结尾附近,我的问题是关于方括号?在此上下文中,方括号的正确javascript术语是什么?方括号的使用与括号在此处的工作方式相同吗?即,首先计算()括号内的代码,并将计算值传递给该行的其余部分以计算该行的其余部分?
感谢Emma :)
<button style="border:none; font-size: 22px;background-color:black;
color:white; position:fixed; top:40%; left:5%" class="w3-button w3-black w3-
display-left" onclick="plusDivs(-1)">❮</button>
<button id="rightbutton" style="border:none; font-size: 22px;background-
color:black; color:white;position:fixed; top:40%; right:2%" class="w3-button
w3-black w3-display-right" onclick="plusDivs(1)">❯</button>
<script>
var slideIndex = 1;
showDivs(slideIndex);
function plusDivs(n) {
showDivs(slideIndex += n);
}
function showDivs(n) {
var i;
var x = document.getElementsByClassName("mySlides");
if (n > x.length) {slideIndex = 1}
if (n < 1) {slideIndex = x.length}
for (i = 0; i < x.length; i++) {
x[i].style.display = "none"; // 1) the square brackets here?
}
x[slideIndex-1].style.display = "block"; // 2) and the square brackets here?
}
</script>
答案 0 :(得分:1)
这些称为索引或括号属性访问者。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors
属性访问器通过使用提供对对象属性的访问 点符号或括号表示法。
在Javascript中,您可以使用索引或括号,表示法访问数组的元素。这正是您在代码中所拥有的。
同样,您可以使用 Dot 表示法访问对象的属性:
myObj.property1
或索引 / 括号表示法:
myObj["property1"]
准确地说,索引术语在引用数组元素时更合适,而 Bracket 术语在引用对象属性时更合适。就个人而言,我可以互换地使用术语。
关于你的第二个问题,不!括号[]
与括号()
不同。括号用于调用函数。括号仅用于访问数组元素或对象属性。
function sayHello() { // Function definition. Parentheses needed.
return "Hello!";
}
var result = sayHello(); // Calling a function. Parentheses needed.
var obj = { // Object definition. No parentheses.
name: "Emma"
}
var objName1 = obj.name; // Accessing a property using Dot notation.
var objName2 = obj["name"]; // Accessing property using Bracket notation.
答案 1 :(得分:0)
使用括号表示法称为property accessor。
object.property // dot notation object['property'] // bracket notation
您可以使用字符串化索引,例如1
或1
。如果给定的属性访问器不是字符串,则会在advanve中将其转换为字符串。
您使用document.getElementsByClassName
:
返回具有所有给定类名的所有子元素的类数组对象。在文档对象上调用时,将搜索完整文档,包括根节点。您也可以在任何元素上调用
getElementsByClassName()
;它将仅返回具有给定类名的指定根元素的后代元素。
var x = document.getElementsByClassName("mySlides"); // returns an array like object
// iterable with index and
// has a length property
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
// ^^^ // take the element at index i
}
x[slideIndex - 1].style.display = "block";
//^^^^^^^^^^^^^^^ // calculate an index