Java, C# 및 기타 언어와 마찬가지로 JavaScript에도 객체지향의 특성이 있지만 잘 비교해 보면 이러한 특성이 실제로는 객체지향이 아닌 경우가 많습니다. 객체 지향이므로 JavaScript는 객체 지향 프로그래밍 언어가 아니라 객체 기반 언어로 간주됩니다.
JavaScript에서는 실제로 모든 것이 객체입니다. new로 생성된 것들도 객체이고, 메소드도 객체이며, 심지어 클래스도 객체입니다. 객체, 메소드, 클래스의 객체 특성을 각각 살펴보겠습니다.
1. 내장된 날짜를 살펴보세요
var time = new Date();
var timeString = time.getFullYear() "-"
time.getMonth() "-"
시간. getDate() " "
time.getHours() ":"
time.getMinutes() ":"
time.getSeconds()
document.write(timeString)
시간을 참조하는 Date 객체를 조작하면 Date 객체에 포함된 일련의 getXX() 메소드를 쉽게 호출하여 연, 월, 일, 시, 분, 초 등의 정보를 얻을 수 있습니다.
String
var username = new String("hello world");
document.write(username.length);
변수 username은 new에 의해 생성된 문자열 객체를 참조하며, 길이 속성은 문자열 개체 중 사용자 이름을 통해 액세스됩니다.
2. 메소드도 객체입니다
function hello() {
alert("hello");
var helloRef = hello;
hello는 메소드이고, helloRef는 hello 메소드를 참조하는 변수입니다. HelloRef와 hello는 모두 동일한 메소드 객체를 가리킵니다. 이는 helloRef()도 실행될 수 있음을 의미합니다. 같은 방법으로 다음 코드를 작성할 수도 있습니다.
var helloRef = function() {
alert( "hello");
};
helloRef();
function(){alert("hello")}는 물론 익명 메서드이기도 합니다. helloRef 변수에 의해 참조되는 객체 메소드 객체 이후 helloRef를 통해 메소드를 호출할 수 있습니다.
3. 수업은 어떻습니까?
물론 클래스도 객체입니다. JavaScript에서는 C#이나 Java와 달리 클래스를 생성하는 데 class 키워드가 없습니다. 대신에 method 키워드를 사용하여 클래스를 생성하거나 시뮬레이션합니다.
function Person(사용자 이름, 나이) {
this .Name = username;
this.Age = age;
this.Introduce = function() {
alert("내 이름은 " this.Name "이고 올해는 "입니다. .Age " 세.") ;
};
var person1 = new Person("장산", 20)
위에서는 Person 유형을 생성하고 Person에는 생성 매개변수 username과 age가 있으며 Person에 포함된 Introduce 메소드는 생성된 Person 객체를 통해 호출할 수 있습니다. 아래 코드를 일부 수정하세요.
코드 복사
코드는 다음과 같습니다. function Person(사용자 이름, 나이) { this .Name = username;
this.Age = age;
this.Introduce = function() {
alert("내 이름은 " this.Name "이고 올해는 "입니다. .Age "세.") ;
};
var PersonClass = Person;
var person1 = new PersonClass("Zhang San", 20); ();
새 변수 PersonClass를 다시 선언하고 Person 클래스를 참조합니다. PersonClass와 Person은 모두 원래 Person이 참조하는 클래스를 가리키므로 PersonClass를 사용하여 객체를 만들 수도 있습니다.
위의 예는 그다지 적절하지 않을 수도 있지만 JavaScript의 모든 것이 객체인 방식을 엿볼 수 있습니다.
다음 섹션에서는 JavaScript의 객체에 대해 자세히 설명합니다.