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

Object.setPrototypeOf()

JavaScript Object.setPrototypeOf()方法

Object.setPrototypeOf()方法设置原型(即内部[[Prototype]]属性)从指定对象更改为另一个对象,或者为null。所有JavaScript对象都从原型继承属性和方法。通常认为这是设置对象原型的正确方法。

语法:

Object.setPrototypeOf(obj, prototype)

参数:

obj :要设置其原型的对象。
prototype:这是对象的新原型(对象或null)。

返回值:

此方法返回指定的对象。

浏览器支持:

Chrome 34
Edge
Firefox 31
Opera

示例1

let raay = {
  drive() {
    return 'Add raay';
  }
}
let naty = {
  net() {
    return 'use net';
  }
}
// Set raay's __proto__ to naty's __proto__'s __proto__
Object.setPrototypeOf(naty, raay);
console.dir(naty); //prints the naty object
console.log(naty.net()); // use net
console.log(naty.drive()); // Add raay
输出:
[object Object] {
drive: drive() {
return 'Add raay';
},
net: net() {
return 'use net';
}
}
"use net"
"Add raay"

示例2

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

示例3

let toyota = {
  drive() {
    return 'driving toyota';
 }
}
let camry = {
  wifi() {
    return 'carry';
  }
}
// Set toyota's __proto__ to camry's __proto__'s __proto__
Object.setPrototypeOf(camry, toyota);
console.dir(camry); //prints the camry object
console.log(camry.wifi()); // carry
输出:
[object Object] {
drive: drive() {
return 'driving toyota';
},
wifi: wifi() {
return 'carry';
}
}
"carry"
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4