Object.create()方法用于创建具有指定原型对象和属性的新对象。我们可以通过Object.creates(null)创建没有原型的对象。
语法
Object.create(prototype[, propertiesObject])
参数
prototype - 它是原型对象,必须从该对象创建新对象。
propertiesObject - 这是一个可选参数。它指定要添加到新创建对象的可枚举属性。
返回
Object.create()返回具有指定原型对象和属性的新对象。
浏览器支持
| Chrome | yes |
| Edge | yes |
| Firefox | yes |
| Opera | yes |
例子1
const people = { printIntroduction: function () { console.log(`My name is ${this.name}. Am I human? ${this.isHuman}`); } }; const me = Object.create(people); me.name = "Marry";//"name" is a property set on "me", but not on "person" me.isHuman = true;//inherited properties can be overwritten me.printIntroduction();
输出:
"My name Marry. Am I human? true"
例子2
function fruits() { this.name = franco; } function fun() { fruits.call(this) } fun.prototype = Object.create(fruits.prototype); const app = new fun(); console.log(app.name);
输出:
"franco"
例子3
function fruits() { this.name = fruit; this.season = Winter; } function apple() { fruits.call(this); } apple.prototype = Object.create(fruits.prototype); const app = new apple(); console.log(app.name,app.season); console.log(app.season);
输出:
"fruit" "Winter" "Winter"