>  기사  >  웹 프론트엔드  >  JavaScript 객체_javascript 기술을 생성하고 호출하는 메소드 모음

JavaScript 객체_javascript 기술을 생성하고 호출하는 메소드 모음

WBOY
WBOY원래의
2016-05-16 16:24:481032검색

오늘 프로젝트를 진행하다 자바스크립트 객체를 생성해야 하는 상황에 직면했습니다. 그래서 외국인이 자바스크립트 객체를 생성하는 세 가지 방법에 대해 쓴 글을 빙빙 보고, 읽고 나서 코드를 쳐봤습니다. 그 방법이 꽤 좋은 것 같아서 여기서 공유하고 싶습니다.

1. 함수를 사용하여 객체 생성:

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

//객체 정의
함수 동물(유형)
{
This.name="";
This.type=유형;
This.introduction=function(){
            return "내 이름은 " this.name "입니다. 나는 " this.type에 속합니다.
}
}
var Animal=new Animal("Poultry"); //위에서 생성한 개체를 인스턴스화합니다
Animal.name="소红";
Alert(animal.introduction()); //소개 함수 호출(이때 페이지가 나타납니다: 제 이름은 Xiaohong이고 저는 가금류에 속합니다);

이 방법은 다들 익히 알고 계실 텐데요. 그러나 이 방법을 사용하면 성능이 저하됩니다. 여기서는 새 키를 통해 개체를 인스턴스화합니다. 실제로 새 키는 두 가지 작업을 수행합니다. 먼저 익명 메소드(Animal)를 정의합니다. 2. 전화하세요. 이는 다음에 소개할 방법만큼 효율적이지 않습니다.

2. 객체 리터럴 사용:

번역이 맞는지 모르겠네요. 관심 있으신 분은 원문을 읽어보시면 됩니다.

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

//객체 정의
var 도서=
{
                이름: "붉은 저택의 꿈",
          유형:"문학 작품",
           getAuthor:function()
{
            반환: "저는 조설근의 자녀입니다!";
}
}
​​​ Alert(Book.GetAuthor()); //객체 메서드를 호출하면 페이지가 나타납니다. 저는 Cao Xueqin의 자녀입니다.
        Book.name="슬램 덩크";                                                                                                                                                                                   Book.name=" Slam Dunk";                          // 개체 속성 수정
Alert(Book.name); //이때 Slam Dunk라는 페이지가 나타납니다

코드를 보시면 모두가 이 방법이 왜 더 효율적인지 이해하실 것이라 믿습니다. JavaScript 전역 변수를 정의하는 것과 동일하기 때문입니다. 인스턴스화하지 않고 직접 사용할 수 있습니다. 그러나 이것은 이상해 보입니다. 자, 여기에 해결책이 있습니다. 세 번째 방법을 살펴보겠습니다.

3. 싱글톤 모드(함수를 이용한 싱글톤):

싱글톤 모드로 번역하는 것은 적절하지 않을 수 있습니다. 먼저 코드를 살펴보겠습니다.

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

//객체 정의
var Gender=새 함수()
{
This.type="소녀";
This.speaking=function()
{
         "나는" this.type을 반환합니다.
}
}
Alert(Gender.speaking();) //객체 사용 이때 다음 페이지가 나타납니다. 저는 여자입니다.

이 코드를 보세요. 우리의 방법 1과 매우 유사합니까? 그러나 방법 1처럼 작동합니다. 방법 1: 개체를 한 번 사용하고 개체를 한 번 만듭니다. 이 방법은 객체를 한 번 생성하고 영구적으로 사용할 수 있습니다. 따라서 이 접근 방식은 디자인 패턴의 싱글톤 패턴과 매우 유사합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.