>웹 프론트엔드 >JS 튜토리얼 >JavaScript 삭제 속성 사용

JavaScript 삭제 속성 사용

高洛峰
高洛峰원래의
2017-01-20 10:55:241066검색

delete는 객체의 속성을 삭제하는 것입니다. 예를 들어 객체의 경우
var obj = {key:5};
delete obj.key는 객체의 키 속성을 삭제하는 것입니다. 문제는 없지만 객체가 생성될 때 이 속성이 프로토타입 객체에도 존재한다는 점은 주목할 가치가 있습니다.

var A = function(){}; 
A.prototype.testMe = true; 
var a = new A(); 
//覆盖原型属性 
a.testMe = true; 
if(a.testMe){ 
// 一些关键代码... 
// .... 
//删除这属性 
delete a.testMe; 
} 
//第二段 --------------------------- 
// 在其它模块中 
if(a.testMe){ 
// 一些关键代码... 
// .... 
}

두 번째 단락은 주목할 가치가 있습니다. a의 testMe가 삭제된 후에 더 이상 존재하지 않을 것이라고 생각하지 마십시오. 따라서 a.testMe는 정의되지 않습니다. 이는 실제로 프로토타입 액세스를 통해 여전히 존재합니다. .. 아직도 그렇습니다!
여기서 눈치채지 못한 채 속았습니다.
//첨부:
프로토타입 체인을 포함하여 객체에 특정 속성이 있는지 감지:
if ('attrName' in obj)...
객체에 특정 속성이 있는지 감지 객체 자체 및 비프로토타입 체인:
obj.hasOwnProperty('attrName')

JavaScript 삭제 속성 사용과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!

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