Object vs Array

//Array
var members = ['kbs','k0214','1999k'];
console.log(members[1]);    //How to get information

//Object
var roles = {
    'programmer' : 'kbs',
    'designer' : 'k0214',
    'manager' : '1999k'
}
console.log(roles.designer);    How to get information

Array : 각각의 정보를 순서에 따라 정리 (각각의 정보는 고유한 식별자가 존재)

Object : 순서가 없는 정보 저장 (식별자가 숫자가 아닌 이름으로 존재)

  순서 식별자 literal
Array O 숫자 [ ]
Object X 이름 { }

 

object 정의하는 방법 

var 객체이름 = { key : value }

 

Object 에서 key에 대한 value 값을 가져오는 방법

객체이름.key

객체이름[key]

 

loop for Object and Array

//Array
var members = ['kbs','k0214','1999k'];
var i = 0;
while(i<members.length){
    console.log('array loop',members[i]);
    i=i+1;
}

//Object
var roles = {
    'programmer' : 'kbs',
    'designer' : 'k0214',
    'manager' : '1999k'
}
for(var name in roles){
    console.log('object => ', name,'value => ', roles[name]);
}

name : object의 식별자 key  들어오도록 약속되어있음

 

Object Oriented Programming (OOP)

 

Programming을 한다는 것은 크게 두가지로 분류 

1. data

2. data를 처리하는  

data를 사용하기 좋게 정리하는 도구 : ArrayObject 

처리하는 코드가 많아지면 서로 연관되는 것들 grouping하여 구분 : function

 

javascript에서의 function : 처리해야될 일에 대한 정보를 담고 있는 statement + 변수에 넣을 수 있는 value 

var f = function(){
	console.log(1+1);	//statement
}
console.log(f);	//value

 

배열의 원소로서 function 존재 가능

var f = function(){
	console.log(1+1);	//statement
}
console.log(f);	//value
var a =[f];
a[0]();

 

배열과 객체는 모두 서로 연관된 data를 담는 그릇인데, javacript에서는 처리 방법을 grouping하는 함수 조차도 data이기 때문에 배열과 객체에 담을 수 있음 

var f = function(){
	console.log(1+1);
}

var o = {
    func:f
}
o.func();

 

※ function을 배열보다는 객체에 담는 경우가 많음

 

function을 객체에 담을 때

var o = {
    v1 : 'v1',
    v2 : 'v2',
    f1 : function f1(){
    console.log(o.v1);
    },
    f2 : function f2(){
    console.log(o.v2);
    }
}

o.f1();
o.f2();

 

위 코드의 경우, 객체의 이름을 바꾸어보면 함수 안의 내용까지도 바꿔야함을 알 수 있음 

따라서 함수가 객체 안에서 사용될 때, 함수가 자신이 속해있는 객체를 참조할 수 있는 특수한 약속이 필요함

-> this 이용

var o = {
    v1 : 'v1',
    v2 : 'v2',
    f1 : function f1(){
    console.log(this.v1);
    },
    f2 : function f2(){
    console.log(this.v2);
    }
}

o.f1();
o.f2();

 

 

'Web > HTML\CSS\JavaScript' 카테고리의 다른 글

[HTML5] 히든 필드(Hidden field) 사용하는 이유  (0) 2022.03.09
[HTML] form  (0) 2020.07.30
[JavaScript] Function  (0) 2020.07.25
[JavaScript] Array data type  (0) 2020.07.25
JavaScript 기본 문법과 제어문  (0) 2020.07.21

+ Recent posts