js에서 대상을 복사하고 모든 속성과 속성에 대응하는 값을 가져오는 방법
이 대상의 모든 속성을 알면 자연히 new를 다시 한 번 만들고 모든 속성에 값을 부여할 수 있지만 모르면?어떻게 내용이 같은 대상을 만듭니까?
var obj={ colkey: "col", colsinfo: "NameList" }
가장 간단한 것은 for in을 사용하는 것이고,
예를 들어obj2는obj와 완전히 같은 속성을 가지고 있다
var obj2=new Object();
for(var p in obj)
{
var name=p;//
var value=obj[p];//
obj2[name]=obj[p];
}
사실 이런 방식은 일정한 제한이 있다. 관건은 js에서 for in에 일정한 제한이 있기 때문에 대상의 모든 속성을 훑어보지 않고 일일이 옮길 수 있는 속성만 훑어본다. js 핵심에서 정의한 방법은 모두 일일이 옮길 수 없다. 예를 들어 tostring()이지만 코드에서 정의한 속성은 모두 일일이 옮길 수 있다(특수 정의를 통해 일일이 옮길 수 없는 것으로 정의할 수 있다).그래서 이 방법은 쓰기에 충분하다.
하나의 대상이 for in을 실행할 수 있는지 여부는property IsEnumerable 속성을 통해 판단할 수 있습니다. 설명은 다음과 같습니다.
propertyIsEnumerable 속성
Boolean 값을 반환하여 지정된 속성이 객체의 일부인지 또는 열거할 수 있는지 여부를 나타냅니다.
object.propertyIsEnumerable(proName)
매개 변수
object
필수 옵션입니다.한 대상.
proName
필수 옵션입니다.속성 이름의 문자열 값
설명
property IsEnumerable 속성은true로 되돌아옵니다.object가 지정한 속성을 가지지 않거나 지정한 속성이 열거할 수 없는 경우propertyIsEnumerable 속성은false로 되돌아옵니다.전형적으로 미리 정의된 속성은 열거할 수 있는 것이 아니라 사용자가 정의한 속성은 항상 열거할 수 있는 것이다.
propertyIsEnumerable 속성은 원형 체인의 객체를 고려하지 않습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.