Jawaban:
key of obj
Ini mengkompilasi ke JavaScript key in obj
. (CoffeeScript menggunakan of
saat merujuk ke kunci, dan in
saat merujuk ke nilai larik: val in arr
akan menguji apakah val
ada di arr
.)
jawaban thejh benar jika Anda ingin mengabaikan prototipe objek. Jawaban Jimmy benar jika Anda ingin mengabaikan kunci dengan nilai null
atau undefined
.
own = (prop, obj) -> Object::hasOwnProperty.call obj, prop
'?' operator memeriksa keberadaan:
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?
mungkin yang paling ringkas.
obj.hasOwnProperty(name)
(untuk mengabaikan properti yang diwariskan)
key of obj
akan menimbulkan kesalahan jika nilainya adalah string atau angka. Cannot use 'in' operator to search
. Dalam kasus ini, jika objek tidak terdefinisi dan bukan null, itu akan berfungsi.
own key of obj
bekerja, juga, untuk menguji tambahan.hasOwnProperty()
. "kemungkinan besar" berasal dari saya belum mencoba, tetapi sintaks ini bekerja dalam pemahaman.