我在导航栏上看到了这段代码,第一次看到这种类型
var logoSH = fixIT ? 'show' : 'hide';
$('#mini-logo')
忽略
fixIT
它包含true
或false
.
之后没有$('#mini-logo')
,我第一次看到hide()
和show()
方法通过隐藏方式调用。
它是如何运作的?
答案 0 :(得分:2)
在Javascript中,这些是等价的:
myObj.SomeProperty
myObj["SomeProperty"]
所以这个:
$("someSelector").hide();
相当于:
$("someSelector")["hide"]();
您发布的代码相当于:
if (fixIT) {
$('#mini-logo').show(300);
}
else {
$('#mini-logo').hide(300);
}
但它更紧凑,(恕我直言)可读性更低。虽然,公平地说,它确实确保传递给.show
或.hide
(例如300
)的论点始终是相同的,这可能对您很重要。此外,如果您有多个参数要传递(并且它们在两种情况下都相同),那么它也可能更有用。
答案 1 :(得分:2)
JavaScript有两个member operators:dot notation和square bracket notation。这两个都用于访问对象的成员。
当您拥有要访问的固定属性键时,将使用点表示法,其中当您有一个键是键时使用方括号表示法
当您说$('#mini-logo')[logoSH](300)
时,假设logoSH == 'show'
它等同于$('#mini-logo').show(300)