자바스크립트가 객체를 획득하고 객체를 복사하는 방법에 대한 자세한 설명입니다.

伊谢尔伦
풀어 주다: 2017-07-21 13:37:42
원래의
1292명이 탐색했습니다.

JS 객체의 모든 속성과 메소드를 이해하고 객체의 모든 속성과 메소드를 얻습니다. 핵심 코드와 원리는 다음과 같습니다.

function displayProp(obj){  
  var names="";   
  for(var name in obj){   
    names+=name+": "+obj[name]+", "; 
  } 
  alert(names); 
}
로그인 후 복사

이 객체의 모든 속성을 알면 자연스럽게 할 수 있습니다. 새 항목을 만든 다음 각 속성에 새 항목을 추가하면 됩니다. 하지만 모르면 어떻게 합니까? 동일한 내용으로 개체를 만드는 방법은 무엇입니까?

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]; 
}
로그인 후 복사

사실 이 방법에는 특정 제한 사항이 있습니다. for in in js에는 특정 제한 사항이 있지만 그렇지 않습니다. 모든 속성은 열거 가능한 속성만 통과합니다. tostring()과 같이 js 코어에 의해 정의된 메서드는 열거 가능하지 않지만 코드에 정의된 속성은 모두 열거 가능합니다(특별히 열거 불가능으로 정의될 수 있음). ). 그러므로 이 방법이면 충분합니다.
객체가 철저하게 in에 대해 가능한지 여부는 propertyIsEnumerable 속성을 통해 판단할 수 있습니다. 설명은 다음과 같습니다.
propertyIsEnumerable 속성
지정된 속성이 객체의 일부인지, 속성이 열거 가능한지 여부를 나타내는 부울 값을 반환합니다. .
object.propertyIsEnumerable(proName)
매개변수
객체
필수입니다. 객체.
proName
필수입니다. 속성 이름의 문자열 값입니다.
설명
proName이 객체에 존재하고 For...In 루프를 사용하여 열거할 수 있는 경우 propertyIsEnumerable 속성은 true를 반환합니다. propertyIsEnumerable 속성은 개체에 지정된 속성이 없거나 지정된 속성이 열거 가능하지 않은 경우 false를 반환합니다. 일반적으로 미리 정의된 속성은 열거 가능하지 않지만 사용자 정의 속성은 항상 열거 가능합니다.
propertyIsEnumerable 속성은 프로토타입 체인의 객체를 고려하지 않습니다.

위 내용은 자바스크립트가 객체를 획득하고 객체를 복사하는 방법에 대한 자세한 설명입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿