관리자 글쓰기
[Javascript] 공부하기 - 5
2017. 10. 26. 22:56 - 개발 새발

- 비동기작업

Ajax(Asynchronous Javascript And Xml)

브라우저의 페이지가 변경되지 않고 웹페이지가 변경될 수 있게 해주는 것(웹에서의 자바스크립트 비동기 작업의 예시)

ex)페이스북의 알림창 같은 것들.



- 클로져

외부 함수의 지역 변수 등에 내부 함수가 접근할 수 있으며 외부 함수의 종료 후에도 외부 함수의 것이 남아 있어 사용 가능함

외부 함수나 객체는 자바의 클래스의 개념과 비슷하게 보면 됨.

ex)

function factory_movie(title){                여기서 title이 외부함수의 지역 변수

return {

get_title(){ return title;}

set_title(_title){ title=_title;}

}

}

ghost = factory_movie('ghost in the shell');

* 여기서 ghost에는 리턴으로 들어오는 {객체} 가 할당 됨. 

(자바처럼 생각하면 안됨. { } 안에 있는 객체 전체가 할당 된다고 생각하면 됨. 그로 인해 ghost가 class가 된다고 생각)


ghost.get_title(); = > ghost in the shell

ghost.set_title('공각기동대');

----이를 통해 class와 비슷한 것을 알 수 있음.

** 객체와 함수의 구분 잘하기



- arguments(유사배열)

ex)

function sum(){

var i,_sum=0;

for( i=0, i< arguments.length; i++){

_sum+=arguments[i];

}

return _sum;

}

document.write(sum(1,2,3,4));            - > 10

sum()안에 있는 1,2,3,4 가 arguments에 대입

arguments.length는 4    arguments[0] - 1    arguments[3] - 4



* 자바스크립트에서는 인자 갯수 상관 없음




- 매개변수

함수.length()와 arguments.length()의 차이점

ex)

function one(arg1){

console.log(one.length, arguments.length);

}

one('val1', 'val2');        

one.length=1 ,    arguments.length=2

함수.length는 선언시의 매개변수 수

arguments.length는 호출 시의 인자 수




- apply 메소드

sum.apply( null, [1,2]);    -> 3            : 원래는 이렇게 사용하지 말것

ex) apply 메소드의 활용

o1 = {var1: 1, var2: 2, var3: 3};

function sum(){

var _sum=0;

for( name in this){        : 여기서 this는 o1

_sum+=name;

}

return _sum;

}

alert(sum.apply(o1));    -> 6

: sum 함수가 o1의 객체 내의 함수인 것처럼 사용되어진다.




'코딩 > Javascript' 카테고리의 다른 글

[Javascript] 공부하기 - 6  (0) 2017.10.28
[Javascript] 공부하기 - 4  (0) 2017.10.26
[Javascript] 공부하기 - 3(정규표현식)  (0) 2017.10.26
[Javascript] 공부하기 - 2  (0) 2017.10.26
[Javascript] 공부하기 - 1  (0) 2017.10.26