JavaScript에서는 캐스팅의 개념이 없습니다. 대신 클래스의 생성자를 수정하여 일반 객체를 허용 할 수 있습니다. 어떻게 당신이이 당신의 클래스를 설정 한 방법에 따라 달라집니다,하지만 단순히 클래스의 새 인스턴스로 개체의 단순 복사본을 포함 할 수있다 :
var MyClass = function (obj) {
for (var i in obj) {
if (!obj.hasOwnProperty(i)) continue;
this[i] = obj[i];
}
// Other class initialisation code
};
는 다음과 같은 개체를 "캐스팅"
var result = new MyClass(someObject);
당신이 필요로 여러 클래스가있는 경우, 당신이 (당신이 jQuery를 사용하는 경우 나,이 기능이 이미 존재하는) 당신을 위해 복제를 않는 extend
기능을 작성하는 것이 좋습니다 :
var extend = function (obj1, obj2) {
for (var i in obj2) {
if (!obj2.hasOwnProperty(i)) continue;
obj1[i] = obj2[i];
}
};
,691을
그리고 나서 다음과 같이 "cast"하십시오 :
var result = new MyClass();
extend(result, someObject);
나는 꽤 오랫동안 이것을 궁금해했습니다. – Kayla
[내 대답은] (http://stackoverflow.com/questions/5063558/javascript-overriden-method/5063837#5063837)을보십시오. 이를 사용하여 JSON에서 가져온 객체를 "클래스"의 프로토 타입으로 확장 할 수 있습니다. (또는 @ Box9가 잘 보여 주듯이 JSON의 데이터를 "클래스"의 객체로 복사하십시오.) –