[英]Javascript, what are (n) and the square brackets doing in this function?
只是有幾個問題可以幫助我理解這個腳本,因為它是 OP,解釋很簡單。
1) (n)
傳遞給函數 plusDivs 和 showDivs。 這個(n)
如何工作的? 是否只是一個空容器來存儲函數中的數據。
2) 用這一行x[i].style.display="none";
和x[slideIndex-1].style.display="block";
使用方括號后,方括號內的代碼是先執行的嗎? 在這種情況下,方括號在做什么或調用什么。
盡管在線教程中以基本方式解釋了函數,但我要求的某些信息很難找到,因此希望得到一些幫助。
謝謝艾瑪。
JS:
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";
}
x[slideIndex-1].style.display = "block";
}
HTML:
<button style="border:none; font-size: 22px;background-color:black; color:white; position:fixed; top:30%; left:5%" onclick="plusDivs(-1)">❮</button>
<button id="rightbutton" style="border:none; font-size: 22px;background-color:black; color:white;position:fixed; top:30%; right:5%" onclick="plusDivs(1)">❯</button>
在 JavaScript 中,函數是代碼的一部分,它接受調用者提供的稱為“參數”的信息,並在代碼中使用它們。 函數的語法是
function (x, y) {
return x + y;
}
如果要調用上述函數:
(function (x, y) {
return x + y;
})(1, 1)
結果是2
。
[
括號]
是下標運算符。 在數組的上下文中,它們采用數字索引並返回該位置的元素:
[1, 2, 3][0] === 1
在對象的上下文中,它們接受一個鍵並返回映射的值:
(({
'foo' : 'bar'
})['foo']) === 'bar'
在您的情況下,函數getElementsByClassName
返回一個元素數組,因此括號表示數組訂閱並用於檢索數組的元素。
1) (n) 傳遞給函數 plusDivs 和 showDivs。 這個 (n) 是如何工作的? 是否只是一個空容器來存儲函數中的數據。
傳遞給 plusDivs() 函數的整數,它的意思是通過按下按鈕將“-1 和 +1”整數作為參數傳遞給函數,並且在您的函數中,它將從您當前的幻燈片索引添加/聯系它,這將導致您的滑塊移動向前(下一張幻燈片)或向后(上一張幻燈片)
2) 用這一行 x[i].style.display="none"; 和 x[slideIndex-1].style.display="block"; 使用方括號后,方括號內的代碼是先執行的嗎? 在這種情況下,方括號在做什么或調用什么。
正如我在評論中提到的,它們用於在數組中查找第 n 個元素。 在您的代碼中,您首先找到所有幻燈片並將它們緩存到一個變量中,因此當您需要找到第 n 張幻燈片時,您最常用的是這張slide[slide number 2]
(這只是偽代碼)
我認為這種情況下的答案不是很清楚。 您問題中的(n)
和i
只是自由變量。 它們可以是任何字母(例如, i
可以是'b'
或其他一些字母)。
它們只是命名和引用 var 屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.