JSFiddle - React, Tailwind, and code Playground

by kornim

HTML

<script src="https://getfirebug.com/firebug-lite-debug.js"></script>

JavaScript

// Javascript Inside 
// 6.2.1 프로토타입에 의한 상속

// person 객체 생성
var person = {
    name: "zzoon",
    getName: function() {
        return this.name;
    },
    setName: function(arg) {
        this.name = arg;
    }
};

/*
// 1. 상속문
function create_object(o) {
    function F() {};
    F.prototype = o;
    return new F();
}

// 2. person 객체를 상속할 student 객체 생성
var student = create_object(person);
*/

// 풀어서 적은 위의 1과 2를 간소화한 코드
var student = Object.create(person);

//
student.setName("me");
console.log(student.getName());


// 확장 함수 정의
function extend(obj, prop) {
    if (!prop) { prop = obj, obj = this;}
    for (var i in prop) obj[i] = prop[i];
    return obj;
};

// 확장을 위한 added 객체와 프로퍼티 생성
// added 객체는 extend() 함수에서 prop에 해당한다
var added = {
    setAge: function(age) {
        this.age = age;
    },
    getAge : function() {
        return this.age;
    }
};

extend(student, added);

student.setAge(25);
console.log(student.getAge());