Object.create函数

Posted haonanya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object.create函数相关的知识,希望对你有一定的参考价值。

语法

Object.create(prototype, descriptors)

参数

prototype

  必需。  要用作原型的对象。  可以为 null。  

descriptors

  可选。  包含一个或多个属性描述符的 javascript 对象。  

  “数据属性”是可获取且可设置值的属性。  数据属性描述符包含 value 特性,以及 writableenumerable 和 configurable 特性。  如果未指定最后三个特性,则它们默认为 false。  只要检索或设置该值,“访问器属性”就会调用用户提供的函数。  访问器属性描述符包含 set 特性和/或 get 特性。  有关详细信息,请参阅 Object.defineProperty 函数 (JavaScript)。  

返回值

一个具有指定的内部原型且包含指定的属性(如果有)的新对象。

异常

如果满足下列任一条件,则将引发 TypeError 异常:

prototype 参数不是对象且不为 null。

descriptors 参数中的描述符具有 value 或 writable 特性,并具有 getset 特性。

descriptors 参数中的描述符具有不为函数的 getset 特性。

示例

var newObj = Object.create(null, {
            size: {
                value: "large",
                enumerable: true
            },
            shape: {
                value: "round",
                enumerable: true
            }
        });

console.log(newObj.size + "<br/>");//large
console.log(newObj.shape + "<br/>");//round
console.log(Object.getPrototypeOf(newObj));null

 

以上是关于Object.create函数的主要内容,如果未能解决你的问题,请参考以下文章

Object.create 将prototype.constructor 更改为父构造函数,但在子实例化时,子构造函数运行

#yyds干货盘点# 前端歌谣的刷题之路-第一百六十八题-object.create

instanceof,Object.getPrototypeOf(),Object.create(),Object.setPrototypeOf(),Object.prototype.isProtot

Object.create()

Object.create(null)

Object.create(Class.prototype) 在这段代码中做了啥?