在线文档教程

Reflect.setPrototypeOf

Reflect.setPrototypeOf

静态方法Reflect.setPrototypeOf()Object.setPrototypeOf()方法是一致的。它将指定对象的原型 (即,内部的[[Prototype]] 属性)设置为另一个对象或为 null

语法

Reflect.setPrototypeOf(target, prototype)

参数

target设置原型的目标对象。prototype对象的新原型 (一个对象或null)。

返回值

返回一个Boolean值表明是否原型已经成功设置。

异常

抛出一个TypeError异常,如果目标不是 Object,或原型不是一个对象或不为 null

描述

Reflect.setPrototypeOf方法改变指定对象的原型 (即,内部的 [[Prototype]]属性值)。

示例

使用Reflect.setPrototypeOf()

Reflect.setPrototypeOf{}, Object.prototype // true // It can change an object's [[Prototype]] to null. Reflect.setPrototypeOf{}, null // true // Returns false if target is not extensible. Reflect.setPrototypeOf(Object.freeze{}), null // false // Returns false if it cause a prototype chain cycle. var target = {}; var proto = Object.create(target Reflect.setPrototypeOf(target, proto // false

规范

SpecificationStatusComment
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Reflect.setPrototypeOf' in that specification.StandardInitial definition.
ECMAScript Latest Draft (ECMA-262)The definition of 'Reflect.setPrototypeOf' in that specification.Draft

浏览器兼容性

FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support49(Yes)42 (42)No supportNo support10

FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic supportNo support49(Yes)42.0 (42)No supportNo support10