in, with 키워드




in키워드

in 키워드를 for 키워드와 따로 사용하면 해당 속성이 객체안에 있는지 검사할 수 있다.

객체안에 해당속성이 있으면 true를, 없으면 false를 반환한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
    <script>
        var car = {
            name : 'BMW520D',
            brand : 'BMW',
            power : '200hp',
            sell : 12000,
            grade : 5
        };
 
        //in 키워드 사용
        alert('name' in car);   //true
        alert('price' in car);  //false
    </script>
cs


in 앞에 확인하고자하는 속성명을, in 뒤에 사용하는 객체명을 적으면 된다.


with 키워드

with 키워드를 사용하면 객체를 좀더 편리하게 사용할 수 있다. 

객체를 생성하고 속성에 접근하기 위해서는 해당 속성을 포함하고 있는 객체명을 써주어야한다.

하지만 with키워드를 이용할 경우 객체명을 생략하여 코드가 간결해진다.

1
2
3
        with(<객체이름>) {
            //코드내용
        }
cs


with 키워드 옆에 괄호를 치고 괄호안에 해당객체의 이름을 넣으면 이 블럭안에서는 객체의 이름을 쓰지 않아도 객체의 속성에 접근할 수 있다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    <script>
        var car = {
            name : 'BMW520D',
            brand : 'BMW',
            power : '200hp',
            sell : 12000,
            grade : 5
        };
 
        
        with(car) {
            alert('name :' + name + '\n');
            alert('brand :' + brand + '\n');
            alert('power : ' + power + '\n');
            alert('sell : ' + sell + '\n');
            alert('grade : ' + grade + '\n');
        }
    </script>
cs


위의 코드와 같이 with키워드를 사용하면 객체명을 쓰지 않아도 속성에 접근할 수 있다.


※ 만약 객체내의 속성과 외부변수의 이름이 같다면 with 키워드 내에서 충돌이 일어난다. 이때는 객체의 속성을 우선시하고, 외부변수를 사용하고자하는 경우 window. 키워드를 변수명 앞에 붙여야한다.

'개발 > JavaScript' 카테고리의 다른 글

[JavaScript] textContent, innerText, innerHTML 비교  (0) 2021.04.18
[JavaScript] 객체의 속성과 메소드  (0) 2018.07.08
[JavaScript] 객체  (2) 2018.07.06
[JavaScript] 클로저  (0) 2018.06.21
[JavaScript] 콜백함수  (0) 2018.06.21

+ Recent posts