2013-04-13 33 views

Trả lời

8

Nói đúng cách x đầu tiên không phải là biến mà là thuộc tính của đối tượng chung. Trong trình duyệt, thường là window (vì vậy x = "Hello" bằng window.x = "Hello"). Bạn không thể sử dụng delete để xóa biến nhưng bạn có thể sử dụng nó để loại bỏ thuộc tính đối tượng và đó là những gì nó làm trong trường hợp đầu tiên.

+0

Vì vậy, sau đó tôi có thể nhìn thấy nó giống như loại bỏ Thuộc tính khỏi đối tượng giống như xóa Phần tử khỏi Mảng? – ProgrammerAtWork

+0

Theo nghĩa nào đó, vâng. – JJJ

+1

Chắc chắn. 'delete' loại bỏ một thuộc tính khỏi một đối tượng. Từ khóa 'var' gắn biến của bạn vào ngữ cảnh cục bộ hiện tại, trong khi khai báo mà không' var' ngầm gắn biến vào một đối tượng toàn cục, tức là 'cửa sổ'. Tuy nhiên, khi 'var' gắn vào' window' (ngữ cảnh gốc), 'delete' vẫn không hoạt động. – Powerslave

5

This page có lời giải thích dài dòng để giải thích lý do.

Câu trả lời ngắn gọn là xóa cho thuộc tính chứ không phải biến. var y tạo một biến. x = "something" tạo thuộc tính của phạm vi toàn cục.

Cũng lưu ý rằng không phải tất cả các trình duyệt đều xử lý xóa giống nhau. ho ho IE

+0

Liên kết tốt đẹp :) Chỉ cần tò mò, làm thế nào bạn đi qua nó? – asifrc

+0

@asifrc Nó được tham chiếu trong tài liệu mozilla javascript. –

Các vấn đề liên quan