Javascript教程
JavaScript基础
JavaScript Objects
JavaScript BOM
JavaScript DOM
JavaScript OOP
JavaScript Cookies
JavaScript事件
JavaScript异常
JavaScript常用

Reflect.setPrototypeOf()

JavaScript Reflect.setPrototypeOf()方法

静态的 Reflect.setPrototypeOf()方法用于将指定对象的原型设置为另一个对象。第一个参数是对象引用,第二个参数可以为null或对象。此方法与Object.setPrototypeOf()方法相同。

语法:

Reflect.setPrototypeOf(obj, prototype)

参数:

obj:它是设置原型的目标对象。
prototype:这是对象的新原型。

返回值:

此方法返回一个布尔值,该布尔值指示是否已成功设置原型。

例外:

如果目标不是对象,则发生TypeError

浏览器支持:

浏览器 版本
Chrome 49
Edge 12
Firefox 42
Opera 36

示例1

const object = {};
console.log(Reflect.setPrototypeOf(Object.freeze(object), null));
输出:
false

示例2

var Animal = {
   speak() {
     console.log(this.name + ' makes a noise.');
   }
};
class g {
   constructor(name) {
   this.name = name;
  }
}
Reflect.setPrototypeOf(g.prototype, Animal);
// If you do not do this you will get a TypeError when you invoke speak
var d = new g('Mitzie');
d.speak();
输出:
Mitzie makes a noise.

示例3

let toyota = {
  drive() {
    return 'value';
  }
}
let obj = {
  wifi() {
    return 'answer';
  }
}
Object.setPrototypeOf(obj, toyota);
console.dir(obj);
document.write(obj.wifi());
document.writeln("<br/>");
document.writeln(obj.drive());
输出:
answer
value
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4