Antworten:
key of obj
Dies wird zu JavaScript kompiliert key in obj
. (CoffeeScript wird verwendet, of
wenn auf Schlüssel verwiesen wird und in
wenn auf Array-Werte verwiesen wird: val in arr
Testet, ob val
in arr
. Ist .)
Die Antwort von thejh ist richtig, wenn Sie den Prototyp des Objekts ignorieren möchten. Jimmys Antwort ist richtig, wenn Sie Schlüssel mit einem null
oder undefined
Wert ignorieren möchten .
own = (prop, obj) -> Object::hasOwnProperty.call obj, prop
Das '?' Bediener prüft auf Existenz:
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?
ist dies wahrscheinlich der prägnanteste.
obj.hasOwnProperty(name)
(um geerbte Eigenschaften zu ignorieren)
key of obj
sie einen Fehler auslöst , wenn der Wert eine Zeichenfolge oder eine Zahl ist. Cannot use 'in' operator to search
. In diesem Fall funktioniert es, wenn das Objekt nicht undefiniert und nicht null ist.
own key of obj
funktioniert höchstwahrscheinlich auch, um zusätzlich zu testen.hasOwnProperty()
. Das "wahrscheinlichste" kommt von mir, dass ich es nicht versucht habe, aber diese Syntax funktioniert im Verständnis.