The static Reflect.has() method works like the in operator as a function.


Reflect.has(target, propertyKey)


The target object in which to look for the property.
The name of the property to check.

Return value

A Boolean indicating whether or not the target has the property.


A TypeError, if target is not an Object.


The Reflect.has method allows you to check if a property is in an object. It works like the in operator as a function.


Using Reflect.has()

Reflect.has({x: 0}, 'x'); // true
Reflect.has({x: 0}, 'y'); // false

// returns true for properties in the prototype chain 
Reflect.has({x: 0}, 'toString');

// Proxy with .has() handler method
obj = new Proxy({}, {
  has(t, k) { return k.startsWith('door'); }
Reflect.has(obj, 'doorbell'); // true
Reflect.has(obj, 'dormitory'); // false


Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Reflect.has' in that specification.
Standard Initial definition.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Reflect.has' in that specification.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support491242 No3610
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support4949 Yes4236105.0

See also

Document Tags and Contributors

Contributors to this page: wbamberg, fscholz, denimX, jameshkramer, nmve, kdex, bsara, eduardoboucas, gingerik
Last updated by: wbamberg,