자바스크립트 파괴 객체

Anika Tabassum Era 2023년10월12일
  1. delete 연산자를 사용하여 JavaScript에서 개체 삭제
  2. destroy 메서드를 사용하고 JavaScript에서 개체 인스턴스 전달
  3. JavaScript를 사용하여 개체 변수 참조를 null로 설정
자바스크립트 파괴 객체

JavaScript destroy 메서드는 개체 인스턴스에 액세스할 수 없습니다. 이 예제에서는 사례를 해결하는 두 가지 방법을 볼 수 있습니다.

한 인스턴스에서는 delete 연산자를 소개하고 다음 예제에서는 개체와 해당 인스턴스를 전달하려고 시도합니다. 따라서 객체와 해당 인스턴스가 정의되지 않음으로 설정되는 방법을 살펴보겠습니다.

delete 연산자를 사용하여 JavaScript에서 개체 삭제

객체는 키-값 쌍으로 여러 속성으로 구성됩니다. 객체를 직접 소멸시키는 기능이 JavaScript에 도입되지 않았기 때문에 속성과 해당 값을 참조에서 제거해야 합니다.

따라서 이 경우 name 속성을 제거하십시오. delete 연산자 사용의 영향을 살펴보겠습니다.

코드 조각:

const Employee = {
  name: 'xyz',
  id: 1
};
console.log(Employee.name);
delete Employee.name;
console.log(Employee.name);

출력:

삭제 연산자를 사용하여 객체 파괴

나중에 Employee.name 값이 정의되지 않음으로 시각화될 수 있습니다. 개체는 여전히 id 속성으로 구성됩니다.

해당 속성을 제거하면 객체는 논리적으로 비어 있습니다. 그러나 개체는 메모리에서 제거되지 않습니다.

그러나 그 대상은 과거의 어떤 속성도 가지고 있지 않습니다.

destroy 메서드를 사용하고 JavaScript에서 개체 인스턴스 전달

destroy 메서드를 정의하는 클래스 생성자를 시작합니다. 여기에서 destroy 기능은 작동할 개체와 해당 특정 인스턴스를 가져옵니다.

나중에 개체 속성에 대한 인스턴스를 인스턴스화하고 이 새 인스턴스는 null 또는 사라지도록 작동합니다.

코드 조각:

// Class constructor
var Class = function() {
  this.destroy = function(baseObject, refName) {
    delete baseObject[refName];
  };
};
// instanciate
var store = {'name': 'abc', 'id': 2};
console.log(store.id);
store.id = new Class();
console.log(store.id);
store.id.destroy(store, 'id');
console.log(store.id);

출력:

파괴 방법 사용 및 객체 인스턴스 전달

store.id에 여전히 new Class() 시작이 있지만 매개변수(객체, 인스턴스)가 destroy 메서드에 전달되기 전에 삭제 작업이 시작되지 않았습니다. 이것이 개체가 null이 되는 경향이 있는 방식입니다.

JavaScript를 사용하여 개체 변수 참조를 null로 설정

변수가 개체를 가리키고 null로 설정하면 해당 개체에 액세스할 수 없습니다. 따라서 JavaScript 가비지 수집기는 개체를 삭제합니다.

userName 변수는 다음 코드 예제에서 개체를 가리킵니다. 이제 userName 변수를 통해 개체에 액세스할 수 있습니다.

그러나 userName 변수를 null로 설정하면 더 이상 개체에 액세스할 수 없습니다. 객체를 삭제하고 메모리를 해제합니다.

암호:

let userName = {id: 1, position: 2} console.log('Before deletion: ', userName);
// Set the object reference to null
userName = null;

// Check if we can reach the object
console.log('After deletion: ', userName);

출력:

Before deletion:  Object { id: 1, position: 2 }
After deletion:  null
Anika Tabassum Era avatar Anika Tabassum Era avatar

Era is an observer who loves cracking the ambiguos barriers. An AI enthusiast to help others with the drive and develop a stronger community.

LinkedIn Facebook

관련 문장 - JavaScript Object