-
항해2주차 - Node.js (15) 객체와 함수 (中)항해 2023. 1. 19. 09:52
객체 : property (이름, 값)들의 집합 (이걸로 바로 이해 OK)
"객체는 복합된 값입니다. 객체는 여러 가지 값(기본 값이나 다른 객체)를 모아서 이름을 통해 값을 저장하고 가져올 수 있게 합니다. 객체는 프로퍼티의 순서 없는 집합이며 각 프로퍼티에는 이름과 값이 있습니다. 프로퍼티 이름은 보통 문자열이므로 객체가 문자열에 값을 연결한다고 볼 수 도 있습니다. 이렇게 문자열과 값을 연결하는 동작을 표현하는 이름은 다양합니다. 다른 언어에서 기본적인 데이터구조를 '해시', '해시 테이블', '딕셔너리', '연관 배열'같은 이름으로 부르는 데 이미 익숙할 수도 있습니다 .하지만 객체는 단순히 문자열과 값을 연결한 것이 아닙니다. 자바스크립트 객체는 자신만의 프로퍼티를 가지는 것 외에도, '프로토타입'으로 불리는 다른 객체에서 프로퍼티를 상속하기도 합니다. 객체의 메서드는 일반적으로 상속된 프로퍼티이며 이 '프로토타입 상속'이 자바스크립트의 중요한 기능입니다."
"자바스크립트에서 문자열, 숫자, 심벌, true, false, null, undefined가 아닌 값은 전부 객체입니다. 또한 문자열, 숫자, 불은 객체가 아니지만 불변인 객체처럼 행동할 수도 있습니다."
"객체는 가변이며 값이 아닌 참조로 조작한다고 설명했습니다. 변수 x가 객체를 참조하고, let y = x라는 코드를 실행한다면, 변수 y는 그 객체의 사본이 아니라 같은 객체를 참조합니다. 변수 y를 통해 객체를 수정하면 그 결과는 변수 x에도 똑같이 적용됩니다."
"객체를 통해 하는 일은 생성, 검색, 삭제, 테스트, 프로퍼티 열거로 나눌 수 있습니다. 이런 기본적인 동작은 이 장 초반에서 설명합니다."
"모든 프로퍼티에는 이름과 값 외에도 다음과 같은 세 가지 프로퍼티 속성이 있습니다. (쓰기 가능, 열거 가능, 변경 가능)"
데이비드 플래너건, 한선용, ⌜자바스크립트 완벽 가이드⌟, 프로그래밍 인사이트, 2022, 151~152쪽
--------------------------------------------뭔소리고-----------------------------------------------------------------------------
무슨 말인지 몰라 찾아본 바로는 이렇다.
1. 객체
객체는 어떠한 속성값과 행동을 가지고 있는 데이터다.
예를 들어 자동차를 본다면, 사전적 의미는 '원동기를 장치하여 그 동력으로 바퀴를 굴려서
철길이나 가설된 선에 의하지 아니하고 땅 위를 움직이도록 만든 차' 인데
사전적 의미뿐만 아니라 사람이 탈 수 있고, 앞뒤로 움직이는 행동을 할 수 있고
차 앞뒤에 있는 차량 번호 정보와 차량 디자인, 제조사, 모델명 정보도 있다.
이 모든 정보와 행위를 묶은 데이터를 하나의 자동차 객체로 볼 수 있다.
또다른 예로 기차역에서 승차권을 발매하는 경우)
실체인 '손님'과 동작인 '승차원 주문' 은 하나의 객체임.
실체인 '역무인'과 동작인 '승차권 발매' 도 하나의 객체임.
객체들이 가진 속성중의 상태들은 value or attribute
객체들이 가진 행동들은 method라고 한다.
이러한 프로그래밍 기법을 객체지향 프로그래밍 이라 한다.
----------------------------------------------뭔소리고22-------------------------------------------------------------------
[함수란?]
- 반복해서 사용할 수 있는 코드 조각
- 코드를 '캡슐화'해서, 여러 번 실행할 수 있게 해 준다.
[함수 만드는 법]
1) function을 적는다 (ㅋㅋ)
2) function 뒤에는 ()가 필요하다.
3) function() 뒤 { } 안에 반복해서 사용하고자 하는 것을 입력한다.
[인수(argument)란?]
- argument(인수) : function을 실행하는 동안 어떠한 정보를 function에게 보낼 수 있는 방법
(데이터를 function에 보내는 방법에 주목하기)
function sayHello(nameOfPerson) { console.log(nameOfPerson); } sayHello("nico") sayHello("dal") sayHello("lynn")
첫 번째 argument로 어떤 데이터가 들어오면, nameOfPerson이라는 variable을 쓰게 된다.
function sayHello(nameOfPerson, age) { console.log(nameOfPerson); } sayHello("nico", 10) sayHello("dal", 23) sayHello("lynn", 21)
argument는 하나 더 받을 수 있다.
위에서 sayHello function은 2개의 argument를 받고 있다.
function sayHello(nameOfPerson, age) { console.log("Hello my name is " + nameOfPerson + " and I'm " + age) } sayHello("nico", 10) sayHello("dal", 23) sayHello("lynn", 21)
- argument의 순서에 따라 데이터가 가져와진다. **순서 중요 **
- function의 값은 function안 에서만 존재한한다.
"함수는 자바스크립트 프로그램의 기본적인 구성 요소이며 대부분의 프로그래밍 언어에 있는 공통 기능입니다. 함수는 한 번 정의하면 몇 번이고 호출할 수 있는 자바스크립트 코드 블록입니다. 자바스크립트 함수는 매개변수화 됩니다. 함수 정의에는 매개변수라고 불리는 식별자 리스트가 있는데, 이들은 함수 바디에서 로컬 변수처럼 동작합니다. 함수를 호출할 때는 매개변수에 값을 전달하는데 이를 인자라고 합니다. 함수는 보통 인자를 사용해 반환 값을 도출하며, 이 값이 함수 호출 표현식의 값이 됩니다. 매개변수 외에도 각 호출에는 호출 컨텍스트가 존재하며 이것이 this 키워드의 값입니다. 객체 프로퍼티로 할당된 함수를 객체의 메서드라고 부릅니다. 객체를 통해 함수를 호출하면 그 객체가 호출 컨텍스트, 즉 함수의 this 값입니다. 객체를 새로 만들 목적으로 설계한 함수를 생성자라고 부릅니다. " "자바스크립트 함수는 객체이며 프로그램에서 조작할 수 있습니다. 자바스크립트는 함수를 변수에 할당하거나 다른 함수에 전달할 수 있습니다. 함수는 객체이므로 프로퍼티를 정의할 수 있고 함수의 메서드를 호출하는 것도 가능합니다." "자바스크립트 함수는 다른 함수 안에서 정의할 수 있으며, 이렇게 정의된 함수는 자신이 정의된 스코프의 변수에 접근할 수 있습니다. 이런 의미에서 자바스크립트 함수는 클로저 입니다." 데이비드 플래너건, 한선용, ⌜자바스크립트 완벽 가이드⌟, 프로그래밍 인사이트, 2022, 211~212쪽
--------------------------------------------------아직은 no 이해. pass-------------------------------------------------------------
2. 함수
프로그램에서 무언가 동작하게 하는 기능?
함수를 써서 이렇게 정의하고 이렇게 움직여라
이런거 아닌가?
3. 프로퍼티 property (이해OK)
이 용어는 계속 이해가 잘 안감.영어자체로 해석하면 소유권, 소유물, 재산 등등
'파일 또는 문자열, 하드웨어 등이 가지고 있는 고유의 정보'
'항해' 카테고리의 다른 글
항해2주차 - Node.js (17) 참조에 의한 객체 복사 (0) 2023.01.19 항해2주차 - Node.js (16) 함수 (0) 2023.01.19 미정리//항해2주차 - Node.js (14) 코딩테스트 (0) 2023.01.19 미정리//항해2주차 - Node.js (13) 변수?표현식?문? (0) 2023.01.19 미정리//항해2주차 - Node.js (12) while과 for 반복문 (0) 2023.01.19