2012-01-04 6 views
4

트위터의 임베디드 코드를보고 있으며 !function을 사용하고있는 것으로 나타났습니다. 이것이 내가 거짓으로 평가한다는 것을 알고있는 동안, 나는 그것이 무엇의 요점인지 궁금해하고있었습니다.트위터가 임베디드 코드에서! function 구문을 사용하는 이유

!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"); 
+2

[가능한 느낌표는 기능 전에합니까?] (http://stackoverflow.com/questions/3755606/what-does-the-exclamation-mark-do-before-the-function) – pimvdb

+1

아니 ... 나는 그것이 무엇을하는지 압니다 ... 왜 그들이 * 그것을하고 있는지 알고 싶습니다. – samccone

+2

두 번째 대답은 그 이유를 설명합니다. 허락하신다면, 질문의 제목은 조금 불행합니다. – pimvdb

답변

6

그것은 바이트를 저장할 수있다 : 여기

내가 말하는거다 코드입니다. 그것은 함수를 호출하는 가장 짧은 방법입니다. 대안했을 :

(function(){...})(); 

참고 구문 트위터 사용

!function(){...}(params); 

들은 1 바이트 함수를 호출하는 길이를 감소하고 있음을 의미한다.

편집 : 방금 생각한대로 : 익명의 기능을 호출한다는 사실도 매우 분명합니다.

+0

만약 그렇다면 ...! function() {console.log ("foo")}는 foo ..를 기록 할 것입니다. 그러나 – samccone

+0

내 편집보기'! function() {console.log ("foo") }();'작동해야합니다. – Ivan

+0

와우, 나는 그것을 짐작하지 못했을 것이다. 더 이상 괄호가 필요없는 이유를 알고 있습니까? –

관련 문제