Xóa các đặc tính object Javascript (phần 2)

Xóa các đặc tính object Javascript (tiếp tục)

delete không loại bỏ các đặc tính cái có một thuộc tính cấu hình được là false. Các đặc tính nhất định của các
objects tích hợp là không cấu hình được, như là các đặc tính của object toàn cục tạo bởi khai báo biến và khai
báo hàm. Trong mode nghiêm ngặt, thử xóa một đặc tính không cấu hình được gây ra một TypeError. Trong mode không
nghiêm ngặt, delete đơn giản đánh giá thành false trong trường hợp này:

// In strict mode, all these deletions throw TypeError instead of returning false
delete Object.prototype // => false: property is non-configurable
var x = 1; // Declare a global variable
delete globalThis.x // => false: can’t delete this property
function f() {} // Declare a global function
delete globalThis.f // => false: can’t delete this property either

Khi xóa các đặc tính cấu hình được của object toàn cục trong mode không nghiêm ngặt, bạn có thể bỏ qua tham chiếu
đến object toàn cục và đơn giản đi theo toán tử delete với tên đặc tính:

globalThis.x = 1; // Create a configurable global property (no let or var)
delete x // => true: this property can be deleted

Trong mode nghiêm ngặt, tuy nhiên, delete dấy lên một SyntaxError nếu toán hạng của nó là một cái nhận dạng không
đủ tư cách như x, và bạn phải công khai về truy cập đặc tính:

delete x; // SyntaxError in strict mode
delete globalThis.x; // This works

Chia sẻ