>웹 프론트엔드 >JS 튜토리얼 >자바스크립트 학습 노트 5 클래스 및 객체_기본 지식

자바스크립트 학습 노트 5 클래스 및 객체_기본 지식

WBOY
WBOY원래의
2016-05-16 18:36:47865검색

객체지향 언어에는 상속, 다형성, 캡슐화라는 세 가지 주요 특징이 있습니다. Javascript는 이 세 가지 사항에 대한 자연스러운 구문 구현을 제공하지 않지만 프로토타입과 같은 기술을 통해 이를 달성할 수 있으므로 이 진술은 그렇지 않은 것 같습니다. 과도한.
Javascript에는 객체를 구성하는 세 가지 방법이 있습니다.
1. 먼저 개념을 명확히 할 필요가 있습니다. Javascript는 약한 유형의 언어라는 사실이 반영되어 있습니다. 변수와 반환 유형에는 강력한 유형이 없습니다. 반면에 Javascript는 임의의 속성과 메서드를 객체에 추가할 수 있습니다. 이를 바탕으로 다음과 같은 코드를 작성할 수 있습니다.

코드 복사 코드는 다음과 같습니다.

< ;script type="text/javascript">
var person = {};
person.name = "페이 린샤"
person.age =
person.Introduce = function () {
alert("내 이름은 " this.name "입니다.
}
person.Introduce(); ;

여기 있는 사람은 우리가 만든 물건입니다.
2. JSON을 사용하여 객체를 생성할 수도 있습니다.

코드 복사 코드는 다음과 같습니다.


이것은 C# 3.0에서 제안한 것과 매우 유사합니까? 익명 개체는 어떻습니까?

코드 복사 코드는 다음과 같습니다.
protected void Page_Load(object sender, EventArgs e )
{
var person = new
{
name = "Fei Linsha",
age = 21
}
Response.Write("내 이름은 " 사람입니다. .name ".I'm " person.age)
}

차이점은 Javascript에서는 함수가 유형이므로 변수에 할당할 수 있지만 C#에서는 할 수 없습니다.
그러나 위의 두 가지 방법에서 객체를 별도로 정의하는 것을 볼 수 있습니다. 다음으로 이들을 클래스로 추상화해 보겠습니다.

코드 복사 코드는 다음과 같습니다.



하지만 여기서는 속성이 하드 코딩되어 있으며 각 개체를 개별적으로 맞춤 설정할 수 있는 방법이 없습니다.


코드 복사 코드는 다음과 같습니다.


두 번째와 세 번째 작성 방법을 비교해 보겠습니다. 두 번째 작성 방법에서는 실제로 JSON 객체가 생성되는데, JSON이 본질적으로 키-값 쌍이라는 것을 알고 있는데, 객체를 같은 방식으로 이해할 수 있을까요?
다음과 같이 테스트 코드를 작성해 보겠습니다.



코드 복사
코드는 다음과 같습니다.


이 코드에는 문제가 없습니다. 먼저 순회를 사용하여 해당 사람의 모든 키(속성 및 메서드 이름)를 찾습니다. 그런 다음 인덱싱을 사용하여 person 객체의 name 속성에 액세스합니다.
이것에는 문제가 없지만 확장된 문제를 본 적이 있나요? 전통적인 객체 지향 언어의 관점에서 이름과 나이는 개인 변수에 속해야 하는데, 이렇게 person을 사용한 단순 액세스가 파괴되나요?
이전 기사에서 했던 말을 기억하시나요? var가 있는 것을 변수라고 하고, var가 없는 것을 속성이라고 합니다. 따라서 코드를 다음과 같이 변경하면 됩니다.
코드 복사 코드는 다음과 같습니다.



이것은 Javascript에서도 매우 잘 캡슐화할 수 있습니다.
자, Javascript 클래스와 객체에 대한 내용은 여기까지입니다. 하지만 여기에는 여전히 몇 가지 문제가 있습니다. 이에 대해서는 아래에서 언급하겠습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.