jQuery는 쩐다. 그냥 필요한걸 가능하게 해주기 때문이돠~
하지만 속내를 모르고 그냥 쓰기만하면 ㅄ코더가 될것같돠~
그러므로 소스코드를 분석해돠~
요번 탄에는 제일 중요하고, jQuery를 씀으로서 장점이 되는 IIFEs (Immediately Invoked Function expression) 을 논쟁해 보겠돠~
IIFEs 는 최근 다른말로 Self executing function 혹은 self invoked function 이라고 불린돠~
또한 이것을 씀으로의 장점을통해 자바스크립으로 OO가 구현이 가능하다 (이게 없으면 거의 불가능)
dot point 로 표현하는 IIFEs장점
1) closure를 사용하여 class 구현
예
function sayHello2(name) {
var text = 'Hello ' + name; // local variable
var sayAlert = function() { alert(text); }
return sayAlert;
}
var say2 = sayHello2('penis');
say2();
2) 자바스크립내에서 global variable을 완벽히 통재하여 closure속 private 변수 가능
--한마디로 OO하기 위해 하는짓
jQuery의 소스코드 를보면 IIFEs 는
(function(){
})();
-- 중요한점은 ( 를 function과 ) 를 } 뒤에 사용
이건 이렇게 써도되지만 다른 다향한 방법또한 cross browser compatible 하다. 예를들어
페이스북에 보면
!function(){
}();
혹은 다릏게
+function(){
}();
-function(){
}();
~function(){
}();
new function(){
};
new function($){
}(jQuery);
또한 cross browse compatible 하다.
특이한점은 js good parts 책을 보면
(function(){
}()); 이렇게 하는데 리얼 상관없다
jQuery 소스의 IIFEs 는 이렇게 되어있다
(function(window, undefined){
})(window);
window를 passing 하는것은 DOM manipulation 때문이고 재밌는점은 undefined 가 옆에 있다는점이다.
100% 확실한건 ECMA 3 부터 undefined 를 다른 value 예를들어 undefined = randomValue 혹은 true 이렇게 바꾸는게 가능한데
undefined를 pass 함으로서 jquery 속에서 undefined는 무조건 undefined 이다.
보너스로 IIFEs 의 사용예:
하지만 속내를 모르고 그냥 쓰기만하면 ㅄ코더가 될것같돠~
그러므로 소스코드를 분석해돠~
요번 탄에는 제일 중요하고, jQuery를 씀으로서 장점이 되는 IIFEs (Immediately Invoked Function expression) 을 논쟁해 보겠돠~
IIFEs 는 최근 다른말로 Self executing function 혹은 self invoked function 이라고 불린돠~
또한 이것을 씀으로의 장점을통해 자바스크립으로 OO가 구현이 가능하다 (이게 없으면 거의 불가능)
dot point 로 표현하는 IIFEs장점
1) closure를 사용하여 class 구현
예
function sayHello2(name) {
var text = 'Hello ' + name; // local variable
var sayAlert = function() { alert(text); }
return sayAlert;
}
var say2 = sayHello2('penis');
say2();
2) 자바스크립내에서 global variable을 완벽히 통재하여 closure속 private 변수 가능
--한마디로 OO하기 위해 하는짓
jQuery의 소스코드 를보면 IIFEs 는
(function(){
})();
-- 중요한점은 ( 를 function과 ) 를 } 뒤에 사용
이건 이렇게 써도되지만 다른 다향한 방법또한 cross browser compatible 하다. 예를들어
페이스북에 보면
!function(){
}();
혹은 다릏게
+function(){
}();
-function(){
}();
~function(){
}();
new function(){
};
new function($){
}(jQuery);
또한 cross browse compatible 하다.
특이한점은 js good parts 책을 보면
(function(){
}()); 이렇게 하는데 리얼 상관없다
jQuery 소스의 IIFEs 는 이렇게 되어있다
(function(window, undefined){
})(window);
window를 passing 하는것은 DOM manipulation 때문이고 재밌는점은 undefined 가 옆에 있다는점이다.
100% 확실한건 ECMA 3 부터 undefined 를 다른 value 예를들어 undefined = randomValue 혹은 true 이렇게 바꾸는게 가능한데
undefined를 pass 함으로서 jquery 속에서 undefined는 무조건 undefined 이다.
보너스로 IIFEs 의 사용예:
<code>var i = 'test';
(function(){
var i = 'worked';
console.log(i); //i = worked
})();
console.log(i); //i = test
</code>
(function(){
var i = 'worked';
console.log(i); //i = worked
})();
console.log(i); //i = test
</code>
난이재 웬만하면 다트 쓸라고 함 컄컄
다트 좋아?
죻앙