DoneJS StealJS jQuery++ FuncUnit DocumentJS
3.14.1
5.0.0 4.3.0 2.3.35
  • About
  • Guides
  • API Docs
  • Community
  • Contributing
  • Bitovi
    • Bitovi.com
    • Blog
    • Design
    • Development
    • Training
    • Open Source
    • About
    • Contact Us
  • About
  • Guides
  • API Docs
    • Observables
      • can-compute
      • can-define
      • can-define/list/list
      • can-define/map/map
      • can-define-stream
      • can-define-stream-kefir
      • can-event
      • can-event/async/async
      • can-event/batch/batch
      • can-event/lifecycle/lifecycle
      • can-kefir
      • can-list
      • can-map
      • can-map-backup
      • can-map-define
      • can-observation
      • can-observe
      • can-simple-map
      • can-simple-observable
      • can-stream
      • can-stream-kefir
    • Data Modeling
      • can-connect
      • can-connect-cloneable
      • can-connect-feathers
      • can-connect-ndjson
      • can-connect-signalr
      • can-fixture
      • can-fixture-socket
      • can-ndjson-stream
      • can-set
    • Views
      • can-component
      • can-ejs
      • can-element
      • can-react-component
      • can-stache
      • can-stache/helpers/route
      • can-stache-bindings
      • can-stache-converters
      • can-view-autorender
      • can-view-callbacks
      • can-view-href
      • can-view-import
      • can-view-live
      • can-view-model
      • can-view-nodelist
      • can-view-parser
      • can-view-scope
      • can-view-target
      • react-view-model
      • react-view-model/component
      • steal-stache
    • Routing
      • can-deparam
      • can-param
      • can-route
      • can-route-pushstate
    • JS Utilities
      • can-assign
      • can-define-lazy-value
      • can-globals
      • can-key-tree
      • can-make-map
      • can-parse-uri
      • can-string
      • can-string-to-any
      • can-util
      • can-zone
      • can-zone-storage
    • DOM Utilities
      • can-ajax
      • can-attribute-encoder
      • can-control
      • can-dom-events
      • can-event-dom-enter
      • can-event-dom-radiochange
      • can-jquery
    • Data Validation
      • can-define-validate-validatejs
      • can-validate
      • can-validate-interface
      • can-validate-legacy
      • can-validate-validatejs
    • Typed Data
      • can-cid
      • can-construct
      • can-construct-super
      • can-namespace
      • can-reflect
        • Type reflections
          • isBuiltIn
          • isConstructorLike
          • isFunctionLike
          • isIteratorLike
          • isListLike
          • isMapLike
          • isMoreListLikeThanMapLike
          • isObservableLike
          • isPlainObject
          • isPrimitive
          • isPromise
          • isSymbolLike
          • isValueLike
        • Get/Set reflections
          • deleteKeyValue
          • getKeyValue
          • getValue
          • setKeyValue
          • setValue
        • Call reflections
          • apply
          • call
          • new
        • Shape reflections
          • assign
          • assignDeep
          • assignSymbols
          • cloneKeySort
          • convert
          • defineInstanceKey
          • each
          • eachIndex
          • eachKey
          • getIdentity
          • getName
          • getOwnEnumerableKeys
          • getOwnKeyDescriptor
          • getOwnKeys
          • getSchema
          • hasKey
          • hasOwnKey
          • serialize
          • setName
          • size
          • toArray
          • unwrap
          • update
          • updateDeep
        • Observable reflections
          • getPriority
          • getKeyDependencies
          • getValueDependencies
          • isBound
          • keyHasDependencies
          • offInstanceBoundChange
          • offInstancePatches
          • offKeyValue
          • offPatches
          • offEvent
          • onEvent
          • onInstanceBoundChange
          • onInstancePatches
          • onKeyValue
          • onKeys
          • onKeysAdded
          • onKeysRemoved
          • onPatches
          • onValue
          • valueHasDependencies
          • setPriority
      • can-reflect-promise
      • can-types
    • Polyfills
      • can-symbol
      • can-vdom
    • Core
    • Infrastructure
      • can-global
      • can-test-helpers
    • Ecosystem
    • Legacy
  • Community
  • Contributing
  • GitHub
  • Twitter
  • Chat
  • Forum
  • News
Bitovi

hasKey

  • Edit on GitHub

Determine whether an object contains a key on itself or its prototype chain

hasKey(obj, key)

Return true if an object's properties include the property key key or an object on its prototype chain's properties include the key key, false otherwise. An object may implement @@can.hasKey to override default behavior. By default, canReflect.hasKey will use hasOwnKey and return true if the key is present. If hasOwnKey returns false, the in Operator will be used.

var foo = new DefineMap({ "bar": "baz" });

canReflect.in(foo, "bar"); // -> true
canReflect.in(foo, "each"); // -> true
foo.each // -> function each() {...}

Parameters

  1. obj {Object}:

    Any MapLike object

  2. key {String}:

    The key to look up on obj

Returns

{Boolean}:

true if obj's key set contains key or an object on its prototype chain's key set contains key, false otherwise

CanJS is part of DoneJS. Created and maintained by the core DoneJS team and Bitovi. Currently 3.14.1.

On this page

Get help

  • Chat with us
  • File an issue
  • Ask questions
  • Read latest news