JavaScript

[JavaScript]Object 객체

vhxpffltm 2019. 6. 2. 16:43

이 내용은 '생활코딩'에서 공부한 내용을 정리한 글이다. 

자세한 내용은 https://www.opentutorials.org/course/743 이곳에서 확인할 수 있다. 

모든 내용의 출처는 이곳이다. 다른 언어를 알고있는 상태로 공부한 내용이다.

 

Object 객체는 객체의 가장 기본적인 형태를 가지고 있다. 즉 최상위 객체이며 모든 객체들의 부모이다. 

Object 객체의 프로토타입은 모든 객체들의 프로토타입이다.

 

Object 객체에서 프로토타입을 사용한 경우와 사용하지 않는 경우가 있다. 

먼저 사용하지 않으면 생성자 함수와 함께 호출할때, ()안에 인자를 명시하는 특징이있다.  

프로토타입을 사용하면 메서드()만으로 호출한다.

프로토타입을 이용하면 모든 객체가 사용할 수 있는 메서드이다.

 

단, Object의 프로토타입을 확장하는것은 모든 객체에 영향을 주기 때문에 권장하지 않는다.

 

 

 

-소스코드-

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <script>
        //object 객체는 모든 객체들의 부모이다. 얘의 프로토타입은 모든 객체들의 프로토타입이다
        // 모든객체들의 원형이다. Object객체가 가지고 있는 프로토타입은 모든 객체가 사용할 수 있는 기능이다/
        //즉 Object객체는 자바스크립트 최상위 노드, Root라고 이해하자
 
        //Object의 몇몇 메소드 사용법을 알아보자
        //프로토타입이 없는것은 'Object.~~'이라하고 ()안에 값이 들어감
        var arr = ['a''b''c'];
        document.write(Object.keys(arr) + '<br />'); 
        //keys는 key값만을 반환해줌, Object는 생성자 함수일것, 프로퍼티를 가진다, 
        //즉 얘는 Object.keys = function() ~~
 
        //Object.prototype.toString()
        //얘는 어떠한 객체를 만듬, 객체를 담고있는 식별자 '.toString'이라함
        var o = new Object();
        document.write(o.toString() + '<br />'); //객체의 상태를 문자열? 로 바꿔주는거
 
        //얘는 Object.prototype.toString = function(){}~~
        //메소드가 프로토타입소속이기에 생성자 함수(new Object)를 통해 실행시키는 순간 객체를 만들고 
        //그 객체는 프로토타입이라고 하는 특수한 프로퍼티를 객체를 원형으로 하는 객체가 생성
        //그렇게 생성된 객체는 tostring이라는 메서드를 사용가능, 어떠한 객체를 생성하고 그 객체에 대한 메서드로서 사용가능
 
        var a = new Array(123);
        document.write(a.toString() + '<br />');
 
        //Object는 모든 객체의 부모이다,
// Array 객체는 Object라는 객체를 부모로 갖는다.
        //a.tostring을 통해 Object에 정의되어있는 tostring을 사용할수 있다.
 
 
        Object.prototype.contain = function(str){
            for (var name in this) {
                //여기서 this는 메서드가 소속되어 있는 객체를 의미
                //console.log(this[name] + '  ' +str);
                if (this[name== str) return true;
            }
            return false;
        }
        //어떤 객체가 어떠한 기능(메서드)를 가지도록 한다면 
        //prototype이라는 생성자의 프로퍼티안에 있는 객체를 변경할것
        var aa = { 'name''Hur''city''kor' };
        document.write(aa.contain('Hur'+ '<br />');
        //모든 객체들이 contain을 갖도록 하는걸 만들것, contain은 있다면 T, 없다면 F
        var aaa = ['Hur''Kim''Park'];
        document.write(aaa.contain('Kim'+ '<br />');
 
        
        for (var name in aaa) {
            if (aaa.hasOwnProperty(name))
                //오브젝트가 가지고 있는 메서드로 해당객체가 인자로 전달한 값을 자신의 프로퍼티로 가지고 있는지 채크
                //contain은 부모로부터 상속받은 프로퍼티이므로 해당 함수로 직접적으로 정의되어있는지 체크를 한다.
            document.write(name + '<br />');
        }
        //여기서 contain메서드가 포함되서 나온다. 
        
    </script>
 
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5; text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none; color:white">cs

'JavaScript' 카테고리의 다른 글

[javascript] 페이지 개발 : 타이머제작  (0) 2019.11.14
[JavaScript]참조  (0) 2019.06.02
[JavaScript]표준 내장 객체  (0) 2019.05.29
[JavaScript]프로토타입_Prototype  (0) 2019.05.29
[JavaScript]상속  (0) 2019.05.29