Front-End
- 전화번호 체크와 이메일체크 2009.07.23
- call()과 apply() 메서드 2009.07.19
- jQuery 함수 확장 2009.07.05
- 기본 CSS 셀렉터 2009.07.05
- 아이프레임크기조절 2009.06.04
- javascript-클로저,커링 2009.05.31 2
전화번호 체크와 이메일체크
call()과 apply() 메서드
fFunc.call(thisObject, a, b, c, d, ...);
fFunc.apply(thisObject, aArgs);
[출처] apply 와 call 에 대해서 알아 보자 (Web Programmer 2.0) |작성자 치토스
사용
<html> <head> <script> var o1 = {handle :'o1'}; var o2 = {handle :'o2'}; var o3 = {handle :'o3'}; window.handle = 'window'; function whoAmI(){ return this.handle; } o1.identifyMe = whoAmI; alert(whoAmI()); alert(o1.identifyMe()); alert(whoAmI.call(o2)); alert(whoAmI.apply(o3)); </script> </head> <body> </body> </html> |
결과
window
o1
o2
o3
형태로 나온다. call과 apply 파라미터 인자 (객체)에 특정함수로 실행하는 것이다. 함수.call(객체)임 셈이다.
jQuery 함수 확장
$.fn.disable = function(){
if(typeof this.disabled != 'undefined') this.disabled = true;
$.fn.extend({
disable : function(){
});
기본 CSS 셀렉터
셀렉터 | 설명 |
* | 모든 엘리먼트와 일치 |
E | 태그명이 E인 모든 엘리먼트와 일치 |
E F | E의 자손이면서 태그명이 F인 모든 엘리먼트와 일치 |
E>F | E의 바로 아래 자식이면서 태그명이 F인 모든 엘리먼트와 일치 |
E+F | E의 형제 엘리먼트로 바로 다음에 나오는 엘리먼트 F와 일치 |
E~F | E의 형제 엘리먼트로 다음에 나오는 모든 엘리먼트 F와 일치 |
E:ha(F) | 태그명이 F인 자손을 하나 이상 가지는 태그명이 E인 모든 엘리먼트 일치 |
E.C | 클래스명 C를 가지는 모든 엘리먼트 E와 일치 E의 생략은 *.C와 동일함 |
E#I | 아이디가 I인 엘리먼트 E와 일치. E의 생략은 *#I와 동일함. |
E[A] | 어트리부트 A를 가지는 모든 엘리먼트 E와 일치 |
E[A=V] | 값이 V인 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치 |
E[A^=V] | 값이 V로 시작하는 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치 |
E[A$=V] | 값이 V로 끝나는 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치 |
E[A*=V] | 값이 V를 포함하는 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치 |
아이프레임크기조절
<script language="javascript">
function reSizeFrame(obj){
var innerBody = obj.document.body;
var innerHeight = innerBody.scrollHeight + innerBody.clientHeight;
obj.style.height = innerHeight;
}
</script>
</HEAD>
<BODY>
<iframe name='iframe0' src='http://www.naver.com' width="100%" frameborder="0" scrolling="no" vspace="0" onLoad="reSizeFrame(this);">
</iframe>
onLoad가 있었구나 파이어폭스 같은 경우 contentWindow를 얻어와야 한다는데 swing인가? rootPane이 생각남
javascript-클로저,커링
내부 함수(함수 안의 함수)가 내부 함수를 둘러싼 외부 함수의 변수나 매개변수를 이용했는데
이 외부 함수가 종료되어도 내부 함수에서 사용한 변수 값은 내부 함수 내에서 계속 유지되는
기능을 클로저라고 부른다.
<div id="main">hello</div> obj.style.border = "1px solid red"; setTimeout(function(){ function delayedAlert(msg, time){ delayedAlert("Welcome", 2000); |
프로자바스크립트 책에서 나온 내용인데 setTimeout을 setTimeout 1초후 안보이게 하는데 obj를 쓸수 있다는 이야기?.. 두번째도 2초후 alert 메세지 인데 msg를 쓸수 있다는 것??? 원래 되는거 아닌가? 궁금하다.
커링은 좀 신선했다.
<script> alert(addFive(4) == 9); |
함수를 만드는 건데 위에 함수를 선언하고 addFive를 5를 더하는 함수를 만드는 함수로 만든 것이다. 그래서 addFive(4)를 하면 9가 된다. 궁금한 것은 toAdd가 뭘까? 하는 건이다. 그냥 저렿게 선언해도 되는 것인지..
쩝 아 모르겠다 쌍~ alert(toAdd); 찍어보니 4가 나왔다 함수로 들어올 함수 변수 정도? 어렵지만 함수를 만들때
좋을 것 같다.
http://jibbering.com/faq/faq_notes/closures.htm 클로저에 대한 자세한 내용참조 (영어 울렁증이..)