JavaScript에서는 삭제 연산자를 사용하여 객체에서 속성을 삭제할 수 있습니다.
코드 사본은 다음과 같습니다.
var t = {a : 42, b : 26};
console.log (t); // 객체 {a = 42, b = 26}
TA 삭제;
console.log (t); // 객체 {b = 26}
이 속성 삭제 작업의 제한은 삭제 연산자가 객체 자체의 모든 속성 만 삭제할 수 있으며 프로토 타입 객체에서 상속 된 속성을 삭제할 수 없다는 것입니다. 프로토 타입 객체에서 속성을 삭제하려면 프로토 타입 객체를 명시 적으로 얻고 프로토 타입 객체에서 작업을 수행해야합니다.
코드 사본은 다음과 같습니다.
var o = {x : 1, y : 2};
var a = object.create (o);
AZ = 3;
console.log (a); // 객체 {z = 3, x = 1, y = 2}
도끼 삭제; // 상속 된 속성을 삭제할 수 없습니다
console.log (a); // 객체 {z = 3, x = 1, y = 2}
az; // 자체 속성을 삭제할 수 있습니다
console.log (a); // 객체 {x = 1, y = 2}
a .__ proto __. x를 삭제합니다.
console.log (a); // 객체 {y = 2}
프로토 타입 객체의 속성이 삭제되면 프로토 타입 객체에서 상속 된 모든 객체가 영향을받습니다.
삭제 작업의 반환 값에 대해 JavaScript는 다음 규칙을 따릅니다.
1. 삭제 작업이 성공하면 True를 반환하십시오.
2 삭제 작업에 영향을 미치지 않으면 (예 : 삭제 될 속성이 존재하지 않음) TRUE도 반환됩니다.
3. 삭제하려는 속성에 구성 가능한 속성이 False의 속성을 갖는 경우 TypeError 오류는 엄격한 모드로보고되고 잘못된 모드에서 거짓이 반환됩니다.
삭제 연산자가 글로벌 오브젝트의 속성 역할을하는 경우, 비 스트릭 모드에서 코드의 글로벌 객체를 생략 할 수 있습니다.
코드 사본은 다음과 같습니다.
this.c = 42;
c; // 삭제 this.c;
엄격한 모드에서 위의 쓰기 방법은 구문 오류 오류를 던질 것입니다.