웹 개발 메모장

[자바스크립트] this 와 객체 본문

옛날../자바스크립트

[자바스크립트] this 와 객체

도로롱주 2018. 1. 5. 18:48




this : 현재 속한 영역




window : 최상위 영역


자바스크립트의 함수나 변수 등은 기본적으로 하나의 영역에 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
var a = 10;
 
function func1() {
    a++;
    function func2(){
        this.a++;
    }
    func2();
}
 
func1();
alert(this.a);
cs

[실행 해보기]



1
2
3
4
5
function func1() {
    var b = 100;
}
 
alert(b);
cs


모두 하나의 영역이면 왜 함수 밖에서 함수 안에서 선언한 변수에 접근을 못하느냐 할 수 있는데 그건 영역 문제가 아닌 생명 주기의 문제입니다. var bfunc1() 함수가 호출될 때 생겨나고 함수 호출이 끝나면 사라집니다.




객체 : 새로운 영역 만들기


1
2
3
4
5
6
7
8
9
var name = '아이유';
 
var student = {
    name:'헤일리',
    age:15,
    getName: function() {
        alert(this.name);
    }
};
cs



 name : '아이유'



 name : '헤일리'

 age : 15

 getName : function()



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var name = '아이유';
 
var student = {
    name:'헤일리',
    age:15,
    getName: function() {
        alert(name);
        alert(window.name);
        alert(this.name);
        alert(student.name);
    }
};
 
alert(name);
alert(window.name);
alert(this.name);
alert(student.name);
 
student.getName();
cs

[위 코드의 각 변수에 마우스를 가져가 보세요.]



Comments