본문 바로가기

JAVASCRIPT

(80)
생성자와 new 객체지향 객체를 만드는 것을 다시 복습해봅니다. let person = {} -------- object person.name = 'egoing'; --------- name (프로퍼티) person.introduce = function(){ -------- 프로퍼티에 함수가 담겨 있습니다. 이것이 메소드입니다. return 'My name is '+this.name; 여기서 this는 person을 의미합니다. this.name은 egoing을 의미합니다. } document.write(person.introduce()); 이과정이 분산되어 있습니다. 코드를 바꿔봅니다. let person = { 'name' : 'egoing', 'introduce' : function(){ return 'My name is ..
함수 호출 함수는 객체입니다. 객체는 속성을 가지고 있습니다. 값이 저장되있으면 속성 프로퍼티라고 합니다. 그 속성에 함수가 들어있으면 메소드라고 합니다. 메소드는 자바스크립트가 내장된 객체입니다. function sum(arg1,arg2){ return arg1+arg2 } sum(1,2); 이면 3 sum(4,2) 6 다르게 호출하는 방법을 알려드립니다. sum.apply 입력하면 ƒ apply() { [native code] } sum이라는 함수객체의 apply메소드에 접근합니다. { [native code] } 이뜻은 apply라는 메소드가 브라우저에서 제공하는 메소드이기때문에 코드를 보여줄수 없습니다. 즉 내장된 코드인경우 native code라고 나옵니다. sum.apply(null,[1,2]) 3이나오..
매개변수의 수 매개변수와 관련된 두가지 수가 있습니다.. 하나는 함수.length, 다른 하나는 arguments.length이다. arguments.length는 함수로 전달된 실제 인자의 수를 의미하고, 함수.length는 함수에 정의된 인자의 수를 의합니다. function zero(){ console.log( 'zero.length', zero.length, 'arguments', arguments.length ); } function one(arg1){ console.log( 'one.length', one.length, 'arguments', arguments.length ); } function two(arg1, arg2){ console.log( 'two.length', two.length, 'argum..
arguments 함수에는 arguments라는 변수에 담신 유사 배열이 있습니다. 이 배열에는 함수를 호출 할때 입력한 인자가 담겨있다. 아래 예제를 봅니다. function sum(){ let i, _sum = 0; for(i = 0; i < arguments.length; i++){ document.write(i+' : '+arguments[i]+' '); _sum += arguments[i]; } return _sum; } document.write('result : ' + sum(1,2,3,4)); 예를 들면 function a(_arg1){ ------_arg는 매개변수이고 (parameter) } a(1) 1이 인자입니다. 다시 돌아와서 sum()매개변수가 없거나 인자의값이 여러개 넣으더라도 에러가 발생하지않..
클로저2 클로저(closure)는 내부함수와 밀접한 관계를 가지고 있는 주제입니다.. 내부함수는 외부함수의 지역변수에 접근 할 수 있는데 외부함수의 실행이 끝나서 외부함수가 소멸된 이후에도 내부함수가 외부함수의 변수에 접근 할 수 있습니다. 이러한 메커니즘을 클로저라고 합니다. 아래 예제는 이전의 예제를 조금 변형한 것이다. 결과는 경고창으로 coding everybody를 출력할 것입니다. function outter() { let title = "coding everybody" return function() { alert(title); } } inner = outter(); inner(); return 을 해서 outter라는 함수가 생을 마감했지만 inner()를 선언하는 건 title을 실행하는 구문인데..
클로저1 클로저 (closure)는 내부함수가 외부함수의 맥락에(context)에 접근 할수 있는 것을 가르킵니다. 클로저는 자바스크립트를 이용한 고난이도의 테크닉을 구사하는데 필수적인 개념으로 활용됩니다. 내부함수 자바스크립트는 함수 안에서 또 다른함수를 선언할수 있습니다. function outter() { function inner(){ let title= 'coding evertbody'; alert(title); } inner(); } outter(); 출력하면 coding everybody가 출력됩니다. outter함수는 외부함수입니다. 안에 있는 inner()함수가 내부함수입니다. 다시 말해보자면 inner()함수는 let inner =function{} 와 같습니다. 내부 함수는 외부함수의 지역변수..
콜백 -처리의 위임 콜백은 어떠한 함수가 수신하는 인자가 함수인 경우를 콜백이라고 합니다. 예를 들자면 !DOCTYPE html !DOCTYPE html numbers. 점이 있다는 것은 객체입니다. 즉 객체 배열입니다. let numbers = [20,10,9,8,7,6,5,4,3,2,1] 되어있는 것은 numbes에 배열객체로 담아준겁니다. .sort 메소드가 내장되어 있기 때문에 객체에 담아져 있기 때문에 메소드라고 불립니다. 내장 메소드라고 합니다. array.sort(sortfunc) 여기서 sortfunc는 데이터형이 함수입니다. sort함수의 안에 있는(sortfunc)를 콜백 함수라고 합니다. sort라는 동작방법을 콜백 함수를 이용해서 동작방법을 바꿀수 있습니다. 이게 가능한것은 자바스크립트의 함수가 값이기..
함수의 용도2 함수는 리턴 값으로도 사용 할수 있습니다. function cal(mode){ var funcs = { 'plus' : function(left, right){return left + right}, 'minus' : function(left, right){return left - right} } return funcs[mode]; } alert(cal('plus')(2,1)); alert(cal('minus')(2,1)); 코드를 분석해 보자면 retur funcs[plus] 는 'plus' : function(left, right){return left + right}, 을 뜻하고 있으며 cal('plus') 여기 부분은 'plus' : function(left, right){return left + ..