Object
> 게임 같은 거를 생각하면 player 에다가 경험치, 이름, 인기도 이런 거를 설정할텐데
const playerName = "daesung"
const playerFat = "little bit"
const playerage = 23
이런 식으로 설정하면 번거롭다. 그래서 object 를 할 건데,
> object는 이런 식으로 설정
// 중괄호가 들어간다는 거 기억
// object 안과 밖의 규칙은 다르다. 밖에서는 = 을 사용하지만, 안에서는 : 을 사용
// 한 개의 특성(예, name : "daesung")을 설정하면 다른 특성도 올 수 있으니깐 그 뒤에는 ,를 사용한다.
// player의 name에 접근하고 싶을 때는 player.name 또는 player["name"]
const player = {
name: "daesung",
points: 10,
fat: true,
}
console.log(player);
console.log(player.name);
object안의 내용물을 업데이트 하는 것도 가능함.
const player = {
name: "daesung",
points: 10,
fat: true,
}
player.fat = false;
console.log(player);
근데 여기서 의문점
const 로 변수를 잡으면 데이터를 바꿀 수 없다고 했지 않나?
- 맞는데 우리가 바꾼 건 player 라는 object 안에 있는 fat을 바꾼 거라서 상관이 없다. 만약 player 전체의 값을 바꿀려고 한다면 에러가 뜬다.
추가도 가능하다.
const player = {
name: "daesung",
points: 10,
fat: true,
}
// 별 다른 설정 없이 그냥 object를 불러서 내가 넣고 싶은 데이터 이름 값 넣으면 된다.
player.lastName = "sim";
console.log(player);
숫자를 더하는 것도 가능하다.
const player = {
name: "daesung",
points: 10,
fat: true,
};
console.log(player);
player.lastName = "sim";
// 아래와 같이 코드를 쓰면 25라는 결과를 얻을 수 있다.
player.points = player.points + 15;
console.log(player.points);
fuction
> 반복해서 사용할 수 있는 코드 조각
> alert(), push() 등과 같이 괄호가 우리가 function을 실행시키는 방법
function sayHello(){
console.log("Hello my naem is C");
}
sayHello();
> argument는 function을 실행하는 동안 어떤 정보를 function에게 보낼 수 있는 방법
function sayHello(){
console.log("Hello my naem is C");
}
// 해석: sayHello라는 함수를 누르고 그 함수에다가 "daesung"이라는 데이터를 보낸다.
sayHello("daesung");
그럼 어떻게 받느냐??
// function sayHello ()에 nameOfPerson을 넣었는데 이건 sayHello라는 함수로 보낸 데이터가
// nameOfPerson이라는 variable 안에 저장된다는 것
// 그리고 nameOfPerson은 function sayHello() 안에 있기 때문에 function 안에서만 사용해야함.
// 만약
// function sayHello(nameOfPerson){
// console.log(nameOfPerson);
// }
// console.log(nameOfPerson)을 쓴다면 출력되지 않으니 조심!!!
function sayHello(nameOfPerson){
console.log(nameOfPerson);
}
sayHello("daesung");
sayHello("sim");
sayHello("ds");
이렇게 해서 출력을 하면
이런 식으로 나온다.
argument를 2개 설정할 수도 있다.
function sayHello(nameOfPerson, age){
console.log(nameOfPerson, age);
}
sayHello("daesung", 10);
sayHello("sim", 23);
sayHello("ds", 21);
더 나아가서 이런 것들도 가능하다.
function sayHello(nameOfPerson, age){
console.log("Hello my name is " + nameOfPerson + " and I'm " + age);
}
sayHello("daesung", 10);
sayHello("sim", 23);
sayHello("ds", 21);
function plus(firstNumber, secondNumber){
console.log(firstNumber + secondNumber);
}
function divide(a, b){
console.log(a/b);
}
plus(8, 60);
divide(98, 20);
그런데 console.log() 이런 식으로 하는 것처럼 player.sayHello() (player가 object일 때)와 같은 것도 가능하지 않을까?
가능하다.
// 코드 해석
//
// player를 object로 잡고
// 설정할 function을 넣는데 형식은 sayHello : function() {}
// 이런 식으로 그래서 만약에 player 안에 있는 fuction을 부를 때는
// player.sayHello() 이런 식으로 부르고 이 funtion에다가 보내고 싶은
// argument를 적고 보낸다. 그럼 function 안에 있는 otherPersonName에 저장되어서
// function을 실행한다.
const player = {
name: "daesung",
sayHello: function (otherPersonName) {
console.log("hello! " + otherPersonName + " nice to meet you!");
},
};
player.sayHello("daesung");
'웹 > 자바스크립트' 카테고리의 다른 글
자바스크립트(3-1, HTML과 Javascript의 상호작용) (0) | 2023.05.23 |
---|---|
자바스크립트 (2-3 return, prompt, if) (0) | 2023.03.16 |
자바스크립트 (2 - 1) (2) | 2023.03.16 |
자바스크립트 (1 - 준비) (0) | 2023.03.13 |