2011-10-09 27 views

Trả lời

8

Object.defineProperty sẽ mặc định enumerable: falseconfigurable: false, trong khi đối tượng cú pháp getter đen sẽ mặc định enumerable: trueconfigurable: true. Điều này có thể được xác minh với Object.getOwnPropertyDescriptor(obj, "prop").

Điều này có nghĩa rằng trong trường hợp cựu prop sẽ hiển thị trong for-in vòng và Object.keys(obj), và làm một delete obj.prop sẽ thất bại (ồn ào trong chế độ nghiêm ngặt, âm thầm khác). Điều ngược lại sẽ đúng với trường hợp sau.

Lưu ý rằng Object.defineProperty (hoặc Object.create hoặc Object.defineProperties) sẽ cho phép bạn chọn riêng cấu hình và tính khả dụng của thuộc tính của bạn, trong khi cú pháp getter của đối tượng sẽ không.

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