JavaScript에서 클래스 인스턴스로 객체 캐스팅
개발자가 일반적으로 서버에서 수신하는 일반 JavaScript 객체를 캐스팅해야 하는 경우가 많이 발생합니다. 추가 처리를 위해 특정 클래스 인스턴스로 응답합니다. 이 요구 사항은 서버에서 수신한 개체에 해당 개체가 나타내는 클래스와 관련된 필수 메서드 및 속성이 부족한 경우에 발생합니다.
전제 조건
객체를 클래스 인스턴스로 캐스팅하려면 먼저 다음 사항을 이해해야 합니다.
해결책
강력한 솔루션은 다음을 보장하는 것입니다. 모든 생성자는 인스턴스(실제 인스턴스 포함)와 유사한 객체를 허용하고 적절하게 복제할 수 있습니다. 이렇게 하면 인스턴스 생성 논리가 올바르게 처리됩니다.
객체를 인스턴스로 변환하는 정적 메서드를 클래스 내에 생성하는 것이 더 효율적인 대안입니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!