상세 컨텐츠

본문 제목

constructor, prototype 특징

Javascript

by 모모87 2021. 8. 26. 14:02

본문

<!DOCTYPE html>
<html lang="kr">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //prototype:유전자


        function 기계(이름) {
            this.name = 이름;
            this.age = 15;
            this.sayHi = function () {
                console.log('안녕하세요' + this.name + '입니다.');
            }
        }

        기계.prototype.gender = '남';

        var 학생1 = new 기계('Park');
        var 학생2 = new 기계('Kim');

        학생1.toString();

        var arr = [1, 2, 3];
        var obj = { name: 'kim' };
        var obj = new Object();
        // var arr = new Array(1, 2, 3);

        console.log(arr.sort());
        console.log(arr.push(123123, 123, 123, 1));


        var 학생1 = new 기계();
        console.log(학생1.__proto__); //내 부모 유전자를 찾고자할 때
        console.log(기계.prototype);



        var 부모 = { name: 'Kim' };
        var 자식 = {};

        자식.__proto__ = 부모;
        console.log(자식.name);

        //문제
        //0. 오브젝트 자료 여러개를 만들고 싶습니다. 
        function 기계(이름, 나이) {
            this.name = 이름;
            this.age = 나이;
            this.sayHi = function () {
                console.log('안녕' + this.name + '이야.');
            }
        }

        var 학생1 = new 기계('Kim', 20);
        var 학생2 = new 기계('Park', 21);
        var 학생3 = new 기계('Lee', 22);


        //1. 다음 코드의 출력 결과는 무엇일까요?
        function Parent() {
            this.name = 'Kim';
        }
        var a = new Parent();

        a.__proto__.age = 30;
        console.log(a.age)

        //30


        //2. 함수가 안들어가요 엉엉
        function Student(이름, 나이) {
            this.name = 이름;
            this.age = 나이;
        }

        Student.prototype.sayHi = () => {
            console.log('안녕 나는 ' + this.name + '이야');
        }
        var 학생1 = new Student('Kim', 20);

        학생1.sayHi(); //왜 이 코드가 제대로 안나오죠?

        // this 값은 window / function(){}으로써야함

        var 오브젝트 = { sayHi: () => { console.log(this) } }
        오브젝트.sayHi();


        //3. 모든 array에 적용할 수 있는 함수를 직접 새로 만들려면 어떻게 해야할까요?

        Array.prototype.remove3 = function () {
            for (var i = 0; i < this.length; i++) {
                if (this[i] === 3) {
                    this.splice(i, 1);
                }
            }
        };
        var arr = [1, 2, 3, 1, 2, 4, 5, 2, 3];
        arr.remove3();


        console.log(arr); //[1,2]
    </script>
</body>

</html>

 

반응형

'Javascript' 카테고리의 다른 글

Getter, Setter 사용법  (0) 2021.09.13
객체지향 class를 복사하는 extends / super  (0) 2021.09.07
Object 생성기계인 constructor  (0) 2021.08.26
Spread,rest 파마미터  (0) 2021.08.26
함수 arguments 말고 rest 파라미터  (0) 2021.08.25

관련글 더보기