Javascript
-
전역객체 - 객체지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 8. 17:24
[출처 : https://opentutorials.org] 전역객체란? 전역객체(Global object)는 특수한 객체다. 모든 객체는 이 전역객체의 프로퍼티다. 모든 전역변수와 함수는 사실 window 객체의 프로퍼티다. 객체를 명시하지 않으면 암시적으로 window의 프로퍼티로 간주된다. var object = { 'func' : function(){ console.log("Hello") } } object.func(); // Hello window.object.func(); // Hello 전역객체 API ECMAScript에서는 전역객체의 API를 정의해두었다. 그 외의 API는 호스트 환경에서 필요에 따라서 추가로 정의하고 있다. 이를테면 웹브라우저 자바스크립트에서는 alert()이라는 전역객..
-
생성자와 new - 객체지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 8. 16:50
https://opentutorials.org] 객체 객체란 서로 연관된 변수와 함수를 그룹핑한 그릇. 객체 내의 변수를 프로퍼티(property), 함수를 메소드(method)라고 부른다. var person = { 'name' : 'egoing', // 프로퍼티 'introduce' : function(){ // 메소드 return 'My name is '+this.name; } } document.write(person.introduce()); 만약 다른 사람의 이름을 담을 객체가 필요하다면 객체의 정의를 반복해야 할 것이다. 객체의 구조를 재활용할 수 있는 방법이 필요하다. 이 때 사용하는 것이 생성자다. ※ 프로토타입 기반 프로그래밍(Prototype-based Programming) 객체지향 ..
-
객체지향 프로그래밍 - 객체지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 7. 16:58
[출처 : https://opentutorials.org] 객체 지향 프로그래밍(OOP) 객체지향 프로그래밍(Object-Oriented Programming)은 좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임으로 로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것이다. 이 객체들을 마치 레고 블럭처럼 조립해서 하나의 프로그램을 만드는 것이 객체지향 프로그래밍이라고 할 수 있다 ※ 객체는 변수와 메소드를 그룹핑한 것이다. 문법과 설계 문법 첫 번째는 객체지향을 편하게 할 수 있도록 언어가 제공하는 기능을 익히는 것이다. 이러한 기능들은 if, for문처럼 문법적인 구성을 가지고 있다. 이 문법을 이해하고, 숙지해야 객체를 만들 수 있다. 설계 두 번째는 좋은 객체를 만드는 ..
-
화살표 함수 - 문법 | PoiemawebJavascript/ECMAScript 2015 (ES6) 2020. 2. 6. 01:07
[출처 : https://poiemaweb.com] 1. 화살표 함수의 선언 화살표 함수(Arrow function)는 function 키워드 대신 화살표(=>)를 사용하여 보다 간략한 방법으로 함수를 선언할 수 있다. 매개변수 지정 방법 () => { ... } // 매개변수가 없을 경우 x => { ... } // 매개변수가 한 개인 경우, 소괄호를 생략할 수 있다. (x, y) => { ... } // 매개변수가 여러 개인 경우, 소괄호를 생략할 수 없다. 함수 몸체 지정 방법 x => { return x * x } // single line block x => x * x // 함수 몸체가 한줄의 구문이라면 중괄호를 생략할 수 있으며 암묵적으로 return된다. 위 표현과 동일하다. () => { ..
-
함수의 호출 - 함수지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 4. 22:38
[출처 : https://opentutorials.org] 함수호출 function func() {} func(); - 함수 func는 Function이라는 객체의 인스턴스다. 따라서 func는 객체 Function이 가지고 있는 메소드들을 상속하고 있다. function sum(arg1, arg2){ return arg1+arg2; } sum.apply(null, [1,2]) // 3; 'sum(1,2);' 코드와 같음 # apply - 첫번째 인자는 함수(sum)가 실행될 맥락이다. 두번째 인자는 배열의 담겨있는 원소가 함수(sum)의 인자로 순차적으로 대입 o1 = {val1:1, val2:2, val3:3} o2 = {v1:10, v2:50, v3:100, v4:25} function sum(){..
-
arguments - 함수지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 4. 21:10
[출처 : https://opentutorials.org] arguments : arguments는 함수안에서 사용할 수 있도록 그 이름이나 특성이 약속되어 있는 일종의 배열이다. function sum(){ var i, _sum = 0; for(i = 0; i < arguments.length; i++){ document.write(i+':'+arguments[i]+', '); // 0:1, 1:2, 2:3, 3:4 _sum += arguments[i]; } return _sum; // 10 } document.write('result : ' + sum(1,2,3,4)); - 함수에는 arguments라는 변수에 담긴 숨겨진 유사 배열이 있으며, 이 배열에는 함수를 호출할 때 입력한 인자가 담겨있다. ..
-
클로저 - 함수지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 3. 23:33
[출처 : https://opentutorials.org] 클로저 : 클로저(closure)는 내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것을 가르킨다. # 내부함수에서 외부함수의 지역변수에 접근할 수 있는 것을 클로저라고 한다. // outer() 외부함수 function outer() { var title = "Coding Everybody" // inner() 내부함수 function inner() { // 내부함수는 외부함수의 지역변수에 접근할 수 있다. alert(title) // "Coding Everybody" } inner(); } outer() # 외부함수의 실행이 끝나서 외부함수가 소멸된 이후에도 내부함수가 외부함수의 변수에 접근 할 수 있다. function oute..
-
값으로서의 함수와 콜백 - 함수지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 3. 21:45
[출처 : https://opentutorials.org] 값으로서의 함수 JavaScript에서는 함수도 객체다. JavaScript의 함수가 다른 언어의 함수와 다른 점은 함수가 값이 될 수 있다는 점이다. 함수는 변수의 값이 될 수 있다. function a(){} // var a = function(){}; 과 동일 함수는 객체의 값으로 포함될 수 있다 a = { b : function() {} // 'b'는 속성(property), 'function(){}'은 메소드(method) } 함수는 값이기 때문에 다른 함수의 인자로 전달 될 수도 있다. function cal (func, num) { return func(num) } function increase(num) { return num+1 ..