---
hide_title: false
hide_table_of_contents: false
pagination_next: null
pagination_prev: null
---
# Reflect.setPrototypeOf()

The static
**`Reflect.setPrototypeOf()`** method is the same method as
[`Object.setPrototypeOf()`](../../globals/Object/setPrototypeOf.mdx), except for its return type. It sets the
prototype (i.e., the internal `[[Prototype]]` property) of a specified
object to another object or to [`null`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/null), and returns `true` if
the operation was successful, or `false` otherwise.

## Syntax

```js
Reflect.setPrototypeOf(target, prototype)
```

### Parameters

- `target`
  - : The target object of which to set the prototype.
- `prototype`
  - : The object's new prototype (an object or [`null`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/null)).

### Return value

A `Boolean` indicating whether or not the prototype was successfully set.

### Exceptions

A [`TypeError`](../../globals/TypeError/TypeError.mdx), if `target` is not an
`Object` or if `prototype` is neither an object nor
[`null`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/null).

## Description

The `Reflect.setPrototypeOf` method changes the prototype (i.e. the value of
the internal `[[Prototype]]` property) of the specified object.

