📜  JavaScript | Object.setPrototypeOf() 方法

📅  最后修改于: 2022-05-13 01:58:10.009000             🧑  作者: Mango

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 及更高版本