2016년 2월 10일 수요일
[javascript]함수
/*익명 함수*/
function testFunction(){
return a();
}
function a(){
console.log("a");
}
/*기명 함수*/
var b = function(){
console.log("b");
};
testFunction();
/*익명함수와 기명함수의 차이점
* 익명함수는 스크립트에서 먼저 추출해서 로드 되므로 어디서나 호출이 가능 하다.
* 기명함수는 변수에 할당되기때문에 초기화 되기전에는 호출이 불가능. error
* */
/*콜백 함수*/
function callTenTime(callback){
for(var i = 0; i < 1; i++){
callback();
}
}
/*기명 콜백함수*/
var call = function(){
alert("콜백함수");
};
callTenTime(call);
/*익명 콜백함수*/
callTenTime(function(){
alert("콜백함수");
});
/*함수를 리턴하는 함수*/
function returnFunction(){
console.log("함수를리턴");
};
function callReturnFunction(){
return returnFunction();
};
function callReturnFunction2(){
//console.log("123123");
return (function(){
console.log("함수를리턴123123");
})();
}
function callReturnFunction3(){
//console.log("123123");
return function(){
console.log("함수를리턴123123");
};
}
//callReturnFunction();
//callReturnFunction2();
callReturnFunction3()();
/*클로저*/
function closerFunction(name){
var startText = "내 이름은";
var endText = " 입니다";
return function(){
console.log(startText + name + endText);
};
};
var closer1 = closerFunction("태경");
var closer2 = closerFunction("지훈");
var closer3 = closerFunction("형주");
closer1();
closer2();
closer3();
/*자바스크립트 내장함수*/
/*타이머함수*/
/*일정 시간 후 실행 */
var stopSetTimeout = setTimeout(function (){ console.log("setTimeout();");},1000);
clearTimeout(stopSetTimeout);
/*일정시간마다 실행*/
var stopSetInterval = setInterval(function (){console.log("setInterval();");},1000);
setTimeout(function(){clearInterval(stopSetInterval);},5000);
/*타이머 함수는 브라우저 자원을 활용하기 때문에 일반 함수가 모두 호출 된후 마지막에 실행되는 특징이 있음*/
/*클로저 관련 for문 오류*/
/* 반복을 통해 콜백함수를 실행할경우 */
/* 루프 */
function closerBug(i){
console.log(i);
}
/* 정상 출력*/
/*for(var i = 0; i < 10; i++){
closerBug(i);
};*/
function closerBug2(func){
func();
}
for(var i = 0; i < 5; i++){
closerBug2(function (){
console.log(i);
});
};
window.onload = function(){
var closerDivs = document.getElementsByTagName("div");
alert(closerDivs.length);
//정상
for(var i= 0; i < 3 ;i++){
(function (i){
closerDivs[i].onclick = function(){
alert(i);
};
})(i);
};
//비정상
for(var i= 0; i < 3 ;i++){
closerDivs[i].onclick = function(){
alert(i);
};
};
};
//예) closure가 아님
function foo(x) {
var tmp = 3;
function bar(y) {
console.log(x + y + (++tmp));
}
bar(10);
}
foo(2); // 결과 값 16
foo(2); // 결과 값 16
foo(2); // 결과 값 16
//예) closure 임
function foo(x) {
var tmp = 3;
return function (y) {
console.log(x + y + (++tmp));
};
};
var bar = foo(2); // bar is now a closure.
bar(10); // 결과 값 16
bar(10); // 결과 값 17
bar(10); // 결과 값 18
var bar2 = foo(2);
bar2(10); // 결과 값 16
bar2(10); // 결과 값 17
피드 구독하기:
댓글 (Atom)
[oracle]백업및 복구
[oracle]백업및 복구 오라클 덤프 백업및 복구 윈도우 서버 기반 간단 정리 --디렉터리 조회 sqlplus 또는 dbtool 입력시작 SELECT * FROM DBA_DIRECTORIES ; --D:...
-
수십대의 서버에 특정 쉘을 실행한다거나 파일을 수정해야할경우 호스트 입력 아이디 입력 패스워드 입력은 여간 짜증나는일이 아닐수 없다. 이를 한방에 해주는 방법 teraterm 를 설치한다( putty 는 버리자 ) 예를 들면 19...
-
pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId...
-
notice_state 란 이름의 체크박스가 있다 가정하고 $("input[name=notice_state]").bind("click",false); 끝.
댓글 없음:
댓글 쓰기