Language/JavaScript

    [JavaScript] 객체 프로퍼티와 메소드

    객체 프로퍼티(property) 모든 자바스크립트 객체는 Object 객체와 Object.prototype 객체의 모든 프로퍼티를 상속받는다. prototype 프로퍼티를 이용하면 현재 존재하는 프로토타입에 새로운 프로퍼티나 메소드를 손쉽게 추가할 수 있다. 객체 메소드(method) 모든 자바스크립트 객체는 Object 객체와 Object.prototype 객체의 모든 프로퍼티와 메소드를 상속받는다. 자주 사용되는 대표적인 객체 메소드는 다음과 같다. hasOwnProperty() propertyIsEnumerable() isPrototypeOf() isExtensible() toString() valueOf() hasOwnProperty() 메소드 hasOwnProperty() 메소드는 특정 프로퍼티..

    [JavaScript] 객체 다루기

    this 키워드 자바스크립트에서 this 키워드는 해당 키워드가 사용된 자바스크립트 코드 영역을 포함하고 있는 객체를 가리킨다. 예를 들어, 메소드 내부에서 사용된 this 키워드는 해당 메소드를 포함하고 있는 객체를 가리킨다. 또한, 객체 내부에서 사용된 this 키워드는 객체 그 자신을 가리킨다. 이러한 this는 변수가 아닌 키워드이므로, 사용자가 임의로 가리키는 값을 바꿀 수 없다. ※ 객체 생성자 함수 내부에서 사용된 this 키워드는 어떠한 값도 가지지 않으며, 단순히 새로운 객체로 대체된다. 객체 프로퍼티의 삭제 자바스크립트에서 객체의 프로퍼티를 참조하는 방법은 다음과 같다. 문법 객체이름.프로퍼티이름 또는 객체이름["프로퍼티이름"] 자바스크립트에서는 delete 키워드를 사용하여 객체의 프..

    [JavaScript] 프로토타입

    상속(inheritance) 상속(inheritance)이란 새로운 클래스에서 기존 클래스의 모든 프로퍼티와 메소드를 사용할 수 있는 것을 의미한다. 상속을 통해 새로운 프로그램의 요구에 맞게 기존 클래스를 수정하여 재사용할 수 있다. 또한, 클래스 간의 종속 관계를 형성함으로써 객체의 관계를 조직화할 수 있는 장점이 있다. 따라서 이러한 상속은 추상화, 캡슐화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나가 된다. 하지만 C#이나 C++과 같은 클래스 기반(class-based)의 객체 지향 언어와는 달리 자바스크립트는 프로토타입 기반(prototype-based)의 객체 지향 언어다. 프로토타입 기반이기 때문에 상속의 개념이 클래스 기반의 객체 지향 언어와는 약간 다르다. 자바스크립트..

    [JavaScript] 객체의 생성

    객체의 생성 자바스크립트에서 객체를 생성하는 방법은 다음과 같다. 리터럴 표기(literal notation)를 이용한 방법 생성자 함수(constructor function)를 이용한 방법 Object.create() 메소드를 이용한 방법 위와 같은 방법으로 생성되어 메모리에 대입된 객체를 인스턴스(instance)라고 한다. 리터럴 표기를 이용한 객체의 생성 자바스크립트에서 객체를 생성하는 가장 쉬운 방법은 리터럴 표기(literal notation)를 이용하는 방법이다. 문법 var 객체이름 = { 프로퍼티1이름 : 프로퍼티1의 값, 프로퍼티2이름 : 프로퍼티2의 값, ... }; 각각의 프로퍼티는 이름과 값을 콜론(:)으로 연결하고, 쉼표(,)를 사용해 다른 프로퍼티와 구분한다. 프로퍼티의 이름으..

    [JavaScript] 객체의 개념

    객체(object)란? 객체(object)란 실생활에서 우리가 인식할 수 있는 사물로 이해할 수 있다. 객체의 예 객체(object) - 고양이 프로퍼티(property) - cat.name = "나비" - cat.family = "코리안 숏 헤어" - cat.age = 0.1 - cat.weight = 300 메소드(method) - cat.mew() - cat.eat() - cat.sleep() - cat.play() 고양이 객체는 모두 위와 같은 프로퍼티를 가지지만, 각 프로퍼티의 값은 인스턴스마다 전부 다를 것이다. 자바스크립트 객체 자바스크립트의 기본 타입(data type)은 객체(object)이다. 객체란 이름(name)과 값(value)으로 구성된 프로퍼티(property)의 정렬되지 않은..

    [JavaScript] 미리 정의된 전역 함수

    미리 정의된 전역 함수(predefined functions) 자바스크립트는 사용자의 편의를 위해 다양한 기능의 여러 전역 함수를 미리 정의하여 제공한다. 이러한 전역 함수는 자바스크립트의 어떤 타입의 객체에서도 바로 사용할 수 있다. 자바스크립트에서 미리 정의되어 있는 전역 함수는 다음과 같다. eval() isFinite() isNaN() parseFloat() parseInt() decodeURI() decodeURIComponent() encodeURI() encodeURIComponent() escape() unescape() Number() String() eval() eval() 함수는 문자열로 표현된 자바스크립트 코드를 실행하는 함수다. 문법 eval("문자열"); var x = 10, y..