2011-02-02 29 views
6

Trong mọi hướng dẫn JavaScript mà tôi đã xem có một số nội dung được đề cập về thuộc tính của một đối tượng. Nhưng tại sao họ gọi nó là tài sản? ví dụ. constructor property, var a = function {this.b} trong đó b được gọi là property. Theo như tôi biết tài sản có getter và/hoặc setter, vì vậy những người nên được gọi là lĩnh vực, phải không?JavaScript: các trường hoặc thuộc tính

Trả lời

4

Một số nhà cung cấp trình duyệt đã triển khai getters/setters cho thuộc tính JavaScript.

FF và Webkit có __defineGetter____defineSetter__ được triển khai cho đối tượng DOM và nhận và đặt cho Đối tượng nằm ngoài đặc tả ECMA. Tuy nhiên cả IE 8+ đều có Object.defineProperty (từ đặc tả ECMA). Đọc về nó here

Đối với bạn câu hỏi ban đầu, tôi sẽ nói rằng lý do được gọi là thuộc tính trong JavaScript là ngôn ngữ động và đánh dấu cơ bản chỉ sử dụng thuộc tính và biến cục bộ. Vì mọi thứ đều liên kết với một hệ thống phân cấp phạm vi cụ thể, tất cả những gì bạn có là các nhánh cây khác nhau trên mỗi cấp. Và Douglas Croockford đặt tên cho chúng là các thuộc tính :)

+0

Ok. 10x. Dường như có một số người khởi xướng và thiết lập [ECMA] (http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf) 8.6.1. – bliof

2

Giống như với hash, map, dictionaryassociative array; các ngôn ngữ khác nhau muốn gọi chúng là những thứ khác nhau. Thuật ngữ (không may) không được chuyển nhượng 100% giữa các ngôn ngữ lập trình.

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