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 Yes423610 ?

See also

Document Tags and Contributors

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