>  기사  >  웹 프론트엔드  >  JavaScript에서 객체를 클래스 인스턴스로 캐스팅하는 방법

JavaScript에서 객체를 클래스 인스턴스로 캐스팅하는 방법

Patricia Arquette
Patricia Arquette원래의
2024-10-18 11:43:03236검색

How to Cast Objects to Class Instances in JavaScript

JavaScript에서 클래스 인스턴스로 객체 캐스팅

개발자가 일반적으로 서버에서 수신하는 일반 JavaScript 객체를 캐스팅해야 하는 경우가 많이 발생합니다. 추가 처리를 위해 특정 클래스 인스턴스로 응답합니다. 이 요구 사항은 서버에서 수신한 개체에 해당 개체가 나타내는 클래스와 관련된 필수 메서드 및 속성이 부족한 경우에 발생합니다.

전제 조건

객체를 클래스 인스턴스로 캐스팅하려면 먼저 다음 사항을 이해해야 합니다.

  • JavaScript에서 객체 인스턴스를 생성하려면 생성자를 호출해야 합니다.
  • 생성자는 단순한 속성 이상으로 확장될 수 있는 특정 인수를 사용합니다.
  • 생성자를 호출한 후 구문 분석된 JSON 객체의 공용 속성을 생성된 인스턴스에 할당해야 합니다.

해결책

강력한 솔루션은 다음을 보장하는 것입니다. 모든 생성자는 인스턴스(실제 인스턴스 포함)와 유사한 객체를 허용하고 적절하게 복제할 수 있습니다. 이렇게 하면 인스턴스 생성 논리가 올바르게 처리됩니다.

객체를 인스턴스로 변환하는 정적 메서드를 클래스 내에 생성하는 것이 더 효율적인 대안입니다.

Person.fromJSON = function(obj) {
    // Custom code for creating instances of Person
    return …;
};

구체적인 예

다음의 간단한 예를 고려하십시오.

function Person() {
    this.personName = "";
    this.animals = [];
}

function Animal(){
    this.animalName = "";
    this.run = function(meters){
        .....
    }
}

JSON 응답을 변환하려면 다음 접근 방식을 사용할 수 있습니다.

var persons = JSON.parse(serverResponse);
for (var i=0; i<persons.length; i++) {
    persons[i] = $.extend(new Person, persons[i]);
    for (var j=0; j<persons[i].animals; j++) {
        persons[i].animals[j] = $.extend(new Animal, persons[i].animals[j]);
    }
}

참고: 제공된 run 메소드는 개별 인스턴스가 아닌 Animal.prototype 객체에 추가되어야 합니다.

위 내용은 JavaScript에서 객체를 클래스 인스턴스로 캐스팅하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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