Câu trả lời:
key of obj
Điều này biên dịch thành JavaScript key in obj
. (CoffeeScript sử dụng of
khi tham chiếu đến các khóa và in
khi tham chiếu đến các giá trị mảng: val in arr
sẽ kiểm tra xem val
có ở trong không arr
.)
Câu trả lời của thejh là đúng nếu bạn muốn bỏ qua nguyên mẫu của đối tượng. Câu trả lời của Jimmy là đúng nếu bạn muốn bỏ qua các khóa có giá trị null
hoặc a undefined
.
Các '?' nhà điều hành kiểm tra sự tồn tại:
if obj?
# object is not undefined or null
if obj.key?
# obj.key is not undefined or null
# call function if it exists
obj.funcKey?()
# chain existence checks, returns undefined if failure at any level
grandChildVal = obj.key?.childKey?.grandChildKey
# chain existence checks with function, returns undefined if failure at any level
grandChildVal = obj.key?.childKey?().grandChildKey
null
.
obj.key?
có lẽ là ngắn gọn nhất.
obj.hasOwnProperty(name)
(để bỏ qua các thuộc tính kế thừa)
key of obj
sẽ tạo ra một lỗi nếu giá trị là một chuỗi hoặc số. Cannot use 'in' operator to search
. Trong trường hợp này nếu đối tượng không phải là không xác định và không null thì nó sẽ hoạt động.
own key of obj
hoạt động để kiểm tra bổ sung.hasOwnProperty()
. "rất có thể" đến từ việc tôi đã không thử, nhưng cú pháp này hoạt động một cách dễ hiểu.