2014-03-03 2 views
1

내가 아무있다 탐색 모음에이 코드, 내가문자열로 jQuery 메서드가 호출 되었습니까?

픽스 잇 그것은 true 또는 false

포함

을 무시 이러한 유형을

var logoSH = fixIT ? 'show' : 'hide'; 
$('#mini-logo') 

을보고 처음으로 보았다 ., $('#mini-logo') 및 첫 번째 시간 I 숨기기로 hide()show() 메서드가이 방식으로 호출되는 것을보고 있습니다.

어떻게 작동합니까? 자바 스크립트에서

+0

중복 : http://stackoverflow.com/questions/6565681/javascript-square-bracket-function-call –

답변

2

이가 동일합니다

myObj.SomeProperty 

myObj["SomeProperty"] 

그래서이 :

$("someSelector").hide(); 

은 동일합니다 :

if (fixIT) { 
    $('#mini-logo').show(300); 
} 
else { 
    $('#mini-logo').hide(300); 
} 
:

$("someSelector")["hide"](); 

당신이 게시 코드에 해당합니다

하지만 조금 작고 (IMHO) 훨씬 덜 읽을 수 있습니다. 공정하게 말하면, .show 또는 .hide (예 : 300)에 전달 된 인수는 항상 중요 할 수 있습니다. 또한 전달할 인수가 둘 이상인 경우 (두 경우 모두 동일 함) 조금 더 유용 할 수도 있습니다.

2

자바 스크립트는 member operators : dot notationsquare bracket notation 두 개가 있습니다. 이 두 요소는 객체의 멤버에 액세스하는 데 사용됩니다.

당신이 대괄호 표기법이 사용되는 액세스에 대한 고정 속성 키가 때 점 표기법을 사용하면 logoSH == 'show' 가정이 $('#mini-logo')[logoSH](300)을 말할 때 핵심

인 키를 가지고 때와 동일 ~ $('#mini-logo').show(300)

관련 문제