[javascript] 자바스크립트 클래스 기초

자바스크립트 클래스 기초

클래스 소개

클래스란?

자바스크립트에서 클래스란?

var 인스턴스 = {
  프로퍼티1 : 초깃값,
  프로퍼티2 : 초깃값,

  메서드1 : function(){    
  },
  메서드2 : function(){
  }
}
function 클래스이름(){
  this.프러퍼티1 = 초깃값;
  this.프러퍼티2 = 초깃값;

  this.매서드1 = function(){
  }
  this.매서드2 = function(){
  }
}
function 클래스이름(){
  this.프러퍼티1 = 초깃값;
  this.프러퍼티2 = 초깃값;

  클래스이름.prototype.매서드1 = function(){
  }
  클래스이름.prototype.매서드2 = function(){
  }
}

클래스 관련 기본 개념과 용어정리

인스턴스

var 인스턴스 = new TabPanel();

객체란?

프로퍼티

메서드

오브젝트 리터럴 방식으로 클래스 만들기

사용법

예제
var user = {
    name:"ddandonge",
    age: 10,
    showInfo:function(){
        document.write("name = "+this.name+", age = "+this.age);
    }
}

//메서드 접근하기
user.showInfo();
예제 - 함수 단위 코딩으로 만들어진 탭메뉴를 리터럴 방식 클래스를 만드시오.

-결과

리터럴 방식 클래스 변환

클래스 생성하기

변수를 프로퍼티로 만들기

함수를 메서드로 만들기

객체 내부에서 프로퍼티와 메서드 사용하기

this

var TabPanel = {

}
$(document)ready(function(){
  tabMenu1.init();
  tabMenu1.initEvent();
});

특징


// 신규 사용자 정보값
var userlnfo = {
  userName : "김춘경",
  id : "ddandongne"
}
// 기본 사용자 정보값
var defaults = {
  age : 0,
  address :" 서울시 금천구",
  nickName : ""
}
// 함수 호출
showlnfo(userlnfo);
// 함수에서 데이터 사용

function showlnfo(userlnfo){
  // 기본 사용자 정보와 신규 사용자 정보를 합치기
  userlnfo = $.extend({} , defaults , userlnfo);
}

실무에서 오브젝트 리터럴 사용 예

var $ch=$("#chl");
$ch.css("position", "absolute");
$ch.css("left", 100);
$ch.css("top", 100);
var $ch=$("#chl");
$ch.css({
  "position" : "absolute",
  "left" : 100,
  "top" : 100
});