사용자 도구

사이트 도구


javascript:class

class & this

IFEF을 활용하여 class를 구현함.

Class Source

var MyCalendar = /** @class */ (function () {
    function MyCalendar() {
        this.today = new Date();
        this.cal = [];
    }
    MyCalendar.prototype.calculate = function () {
        return 100;
    };
    MyCalendar.prototype.dateId = function (day) {
        var s;
        var m = day.getMonth() + 1;
        var d = day.getDate();
        var sm = (m < 10 ? "0" : "") + m;
        s = day.getFullYear() + sm + (d < 10 ? "0" : "") + d;
        return s;
    };
    MyCalendar.prototype.getCalendar = function (myStr) {
        if (myStr === void 0) { myStr = 'default'; }
        //var cal = [];
        var myDate = new Date();
        var myCalen = this;
        for (var i = 0; i < 2; i++) {
            this.cal.push({
                myString: function () { return myStr; },
                date_id: this.dateId(myDate),
                isToday: function () {
                    var date_id = myCalen.dateId(new Date(myDate.getFullYear(), myDate.getMonth(), myDate.getDate()));
                    console.log("isToday():this.date_id:" + this.date_id);
                    console.log("isToday():date_id:" + date_id);
                    return (myCalen.dateId(myCalen.today) === myCalen.dateId(this.date));
                },
                date: new Date(myDate.getFullYear(), myDate.getMonth(), myDate.getDate(), 0, 0, 0),
                isCurWeek: function () {
                    return myCalen.dateId(myCalen.today);
                }
            });
            myDate.setDate(myDate.getDate() + 1);
        }
    };
    return MyCalendar;
}());
var myCal = new MyCalendar();
myCal.getCalendar();
console.log("========");
myCal.cal.forEach(function (val, idx) {
    console.log("forEach:" + idx + ":" + val.date_id + ":" + val.isToday());
    console.log("isCurWeek:" + val.isCurWeek());
    console.log("++++++++");
});
myCal.today.setMonth(3);
console.log("--------");
myCal.cal.forEach(function (val, idx) {
    console.log("forEach:" + idx + ":" + val.date_id + ":" + val.isToday());
    console.log("isCurWeek:" + val.isCurWeek());
});
console.log("========");

output

========
isToday():this.date_id:20190301
isToday():date_id:20190303
forEach:0:20190301:true
isCurWeek:20190301
++++++++
isToday():this.date_id:20190302
isToday():date_id:20190303
forEach:1:20190302:false
isCurWeek:20190301
++++++++
--------
isToday():this.date_id:20190301
isToday():date_id:20190303
forEach:0:20190301:false
isCurWeek:20190401
isToday():this.date_id:20190302
isToday():date_id:20190303
forEach:1:20190302:false
isCurWeek:20190401
========
javascript/class.txt · 마지막으로 수정됨: 2025/04/15 10:05 저자 127.0.0.1