분류 전체보기38 Ch.18 함수와 일급 객체 다음과 같은 조건을 만족하는 객체를 일급 객체라 한다. 1. 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다. 2. 변수나 자료구조(배열, 객체 등)에 저장할 수 있다. 3. 함수의 매개변수로 전달할 수 있다. 4. 함수의 반환값으로 사용할 수 있다. //1. 함수는 무명의 리터럴로 생성할 수 있다. //2. 함수는 변수에 저장할 수 있다. //런타임(할당 단계)에 함수 리터럴이 평가되어 함수 객체가 생성되고 변수에 할당된다. const increase = function(num) { return ++num; }; const decrease = function(num) { return --num; }; //2. 함수는 객체에 저장 할 수 있다. const auxs = { increase,.. 2022. 10. 13. Ch.17 생성자 함수에 의한 객체 생성 Object 생성자 함수 new 연산자와 함께 object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다. const person = new Object(); person.name = 'Lee'; person.sayHello = function() { console.log('Hi! My name is ' + this.name); }; 허나 Object 생성자 함수를 사용해 객체를 생성하는 방식은 특별한 이유가 없다면 그다지 유용하지 않다. 생성자 함수 객체 리터럴에 의한 객체 생성 방식은 직관적이고 간편하지만 동일한 프로퍼티의 생산에 비효율적이다. function Circle(radius) { this.radius = radius; this.getDiameter = function() { retur.. 2022. 10. 12. Ch.14 전역 변수의 문제점 변수는 선언에 의해 생성되고 할당을 통해 값을 갖는다. 그리고 언젠가 소멸한다. 이에 따른 생명주기가 있다. 생명 주기가 없다면 한번 선언된 변수는 프로그램이 작동하는 내내 메모리 공간을 차지한다. 변수는 자신이 선언된 위치에서 생성하고 소멸된다. 즉 전역변수의 생명주기는 애플리케이션의 생격주기와도 같다. 하지만 지역변수의 생명주기는 블록or함수의 생명주기와 일치한다. 암묵적 결합 전역 변수를 선언한 의도는 어디서든 참조하고 할당 가능한 변수를 사용하겠다는 것이다. 이는 모든 코드가 전역변수를 참조하고 변경할 수 있는 암묵적 결합을 허용하는 겂이다. 유효범위가 클수록 가독성은 나빠지고 의도치 않은 상태 변경이 일어날 수 있다. 긴 생명 주기 전역 변수는 생명주기가 애플리케이션의 생명 주기와 같아서 메모리.. 2022. 10. 10. Ch.13 스코프 스코프(유효범위)는 자바스크립트를 포함한 모든 프로그래밍 언어에의 기본적이며 중요한 개념이다. function add(x,y) { console.log(x,y); // 2 5 return x + y; } add(2,5); // 7 console.log(x,y); // 참조에러 변수는 전역이나 블록 혹은 함수 몸체 내부에서도 선언할수 있다. var x = 'global'; function foo() { var x ='local'; console.log(x); } foo(); // 'local' console.log(x); // 'global' var x 를 함수 내부와 전역에서 중복으로 선언시 자바스크립트 엔진은 이름이 같은 변수 중에서 식별자 결정을 통해 참조한다. 따라서 스코프란 자바스크립트 엔진이 식.. 2022. 10. 10. 이전 1 2 3 4 ··· 10 다음