JavaScript | Object.setPrototypeOf() 方法
JavaScript 中的Object.setPrototypeOf() 方法是标准的内置对象,它将指定对象的原型(即内部 [[Prototype]] 属性)设置为另一个对象或 null。
句法:
Object.setPrototypeOf(obj, prototype)
参数:此方法接受上面提到的两个参数,如下所述:
- obj:此参数是将要设置其原型的对象。
- Prototype:这个参数是对象的新原型。它可以是一个对象或空对象。
返回值:该方法返回指定的对象。
下面的示例说明了 JavaScript 中的Object.setPrototypeOf() 方法:
示例 1:
javascript
let geek1 = {
prop1() {
return 'Object.isExtensible()';
},
prop2() {
return 'JavaScript ';
}
}
let geek2 = {
prop3() {
return 'Geeksforgeeks';
}
}
Object.setPrototypeOf(geek2, geek1);
console.dir(geek2);
console.log(geek2.prop3());
console.log(geek2.prop2());
console.log(geek2.prop1());
javascript
var geeks1 = {
prop1() {
console.log(this.name + ' is Best platform');
},
prop2() {
console.log(this.name + ' provide jobs opportunity');
}
};
class geeks2 {
constructor(name) {
this.name = name;
}
}
Object.setPrototypeOf(geeks2.prototype, geeks1);
var result = new geeks2('GeeksforGeeks');
result.prop1();
result.prop2();
输出:
"Geeksforgeeks"
"JavaScript "
"Object.isExtensible()"
示例 2:
javascript
var geeks1 = {
prop1() {
console.log(this.name + ' is Best platform');
},
prop2() {
console.log(this.name + ' provide jobs opportunity');
}
};
class geeks2 {
constructor(name) {
this.name = name;
}
}
Object.setPrototypeOf(geeks2.prototype, geeks1);
var result = new geeks2('GeeksforGeeks');
result.prop1();
result.prop2();
输出:
"GeeksforGeeks is Best platform"
"GeeksforGeeks provide jobs opportunity"
支持的浏览器: Object.setPrototypeOf()方法支持的浏览器如下:
- 谷歌浏览器 34 及更高版本
- 边缘 12 及以上
- 火狐 31 及以上
- Internet Explorer 11 及更高版本
- Opera 21 及以上
- Safari 9 及更高版本