我看到導航欄上的代碼,我第一次看到這種類型的由字符串調用的jQuery方法?
var logoSH = fixIT ? 'show' : 'hide';
$('#mini-logo')
忽略
FIXIT
它包含true
或false
沒有$('#mini-logo')
後第一次I .
我看到hide()
和show()
方法被hide調用。
它是如何工作的?
我看到導航欄上的代碼,我第一次看到這種類型的由字符串調用的jQuery方法?
var logoSH = fixIT ? 'show' : 'hide';
$('#mini-logo')
忽略
FIXIT
它包含true
或false
沒有$('#mini-logo')
後第一次I .
我看到hide()
和show()
方法被hide調用。
它是如何工作的?
在Javascript中這些是相同的:
myObj.SomeProperty
myObj["SomeProperty"]
所以這樣的:
$("someSelector").hide();
等同於:
$("someSelector")["hide"]();
您發佈的代碼等價於:
if (fixIT) {
$('#mini-logo').show(300);
}
else {
$('#mini-logo').hide(300);
}
但它更緊湊一些,(恕我直言)少得多的可讀性。儘管公平地說,它確實確保了傳遞給.show
或.hide
(例如300
)的論據總是相同的,這對您可能很重要。另外,如果你有超過一個參數可以通過(在兩種情況下它們都是相同的),它可能會更有用一些。
JavaScript有兩個member operators:dot notation和square bracket notation。這兩個都用於訪問對象的成員。
當你有一個固定的屬性鍵來訪問,其中作爲方括號表示法中所用的點表示法用於當你有一個密鑰,其是一個關鍵
當你說$('#mini-logo')[logoSH](300)
,假設logoSH == 'show'
它相當於到$('#mini-logo').show(300)
Duplicate:http://stackoverflow.com/questions/6565681/javascript-square-bracket-function-call –