创建一个具有指定原型且可选择性地包含指定属性的对象。

Object.create(prototype, descriptors)

参数

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

descriptors

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

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

返回值

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

异常

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

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

  • descriptors 参数中的描述符具有不为函数的 get 或 set 特性。

备注

若要停止原型链,可以使用采用了 null prototype 参数的函数。 所创建的对象将没有原型

示例

下面的示例创建使用 null 原型的对象并添加两个可枚举的属性与一个不可枚举的属性。

数组去重var newObj = Object.create(null, {
size: {
value: 'large',
enumerable: true
},
shape: {
value : 'round',
enumerable: true
},
fsy : {
value : 'aho'
}
})

下面的示例创建一个具有与 Object 对象相同的内部原型的对象。 您会发现,该对象具有与使用对象文本创建的对象相同的原型。 Object.getPrototypeOf 函数将获取原始对象的原型。 若要获取对象的属性描述符,可以使用 Object.getOwnPropertyDescriptor 函数 (JavaScript)

对象var firstLine = { x: undefined, y: undefined}
var secondLine = Object.create ( Object.prototype, {
x : {
value : undefined,
writable : true,
configurable: true,
enumerable: true
},
y : {
value : undefined,
writable : true,
configurable: true,
enumerable: true
}
});
document.write("first line prototype = " + Object.getPrototypeOf(firstLine)) //[object Object]
document.write("second line prototype = " + Object.getPrototypeOf(secondLine)); //[object Object]

下面的示例创建一个具有与 Shape 对象相同的内部原型的对象。

对象var Shape = { twoDimensional: true, color: undefined, hasLineSegments: undefined};
var Square = Object.create(Object.getPrototypeOf(Shape))

PS:
  以上内容来自http://technet.microsoft.com/zh-cn/query/ff925952

Object.create函数的更多相关文章

  1. Object.create 函数 (JavaScript)

    创建一个具有指定原型且可选择性地包含指定属性的对象. 语法 Object.create(prototype, descriptors) 参数 prototype 必需.  要用作原型的对象.  可以为 ...

  2. 使用 Object.create 创建对象,super 关键字,class 关键字

    ECMAScript 5 中引入了一个新方法:Object.create().可以调用这个方法来创建一个新对象.新对象的原型就是调用 create 方法时传入的第一个参数: var a = {a: 1 ...

  3. javascript一种新的对象创建方式-Object.create()

    1.Object.create() 是什么? Object.create(proto [, propertiesObject ]) 是E5中提出的一种新的对象创建方式,第一个参数是要继承的原型,如果不 ...

  4. 前端开发者进阶之ECMAScript新特性【一】--Object.create

    Object.create(prototype, descriptors) :创建一个具有指定原型且可选择性地包含指定属性的对象 参数:prototype 必需.  要用作原型的对象. 可以为 nul ...

  5. [设计模式] JavaScript 之 原型模式 : Object.create 与 prototype

    原型模式说明 说明:使用原型实例来 拷贝 创建新的可定制的对象:新建的对象,不需要知道原对象创建的具体过程: 过程:Prototype => new ProtoExam => clone ...

  6. [Effective JavaScript 笔记]第31条:使用Object.getPrototypeOf函数而不要使用__proto__属性

    ES5引入Object.getPrototypeOf函数作为获取对象原型的标准API,但由于之前的很多js引擎使用了一个特殊的__proto__属性来达到相同的目的.但有些浏览器并不支持这个__pro ...

  7. firefox-Developer开发者站点——关于Object.create()新方法的介绍

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/create Objec ...

  8. ES5 常用 语法(object Arrary 函数绑定this指向)

    ES object 扩展 ES object 扩展1. <!DOCTYPE html> <html> <head> <link rel="short ...

  9. (转)es6中object.create()和object.assign()

    今天学习javascript面向对象,在学习Obejct方法时了解到create方法,偶像想起之前使用的assign方法,顺带查找一番,感觉这篇博客讲解详细,遂转载. 先简单提一下装饰器函数,许多面向 ...

随机推荐

  1. MYSQL常用简单语句

    使用SQL语法大写,增加可读性(小写部分就是自己数据库写的表/字段喽,具体你懂得...). 创建数据库:CREATE DATABASE mysql_db;删除数据库:DROP DATABASE mys ...

  2. Alert方法重写

    在正规项目中,总感觉alert框是非常难看的,但是有的时候又必须添加alert框来给用户一种警醒,废话不多说,先上图

  3. [GitPython]使用python管理你的git库

    你想使用python来自动管理一个git仓库的时候,GitPython是一个不错的选择. 简介: 先看看下面这段代码: from git import Repo repo = Repo("~ ...

  4. Escape character is '^]'. Connection closed by foreign host.

    今天在用易汇金的接口回调时候,老是回调不到我的机器上面.我的ip通过公网映射,按说是可以访问到我的ip,思考是什么问题. 1.防火墙关闭,不行 2.防火墙开启,但是把自己的端口号改为可以访问(参考:h ...

  5. HttpAsyncClient 的简单使用

    下载地址:http://hc.apache.org/downloads.cgi 在NetBeans中导入以下jar文件: 1:一次请求: public static void oneReuest(){ ...

  6. ACdream 1017 Fast Transportation

    http://acdream.info/problem?pid=1017 题意:给n个点,m条边,K个货物,要从从S到T,每天每条边最多只能经过1次,求要几天能运完 思路:拆成分层图,每层向下一层连边 ...

  7. 【转】Kconfig,Makefile 和 .config

    原文网址:http://blog.csdn.net/nxh_love/article/details/11846861 最新在做Sensor驱动移植的时候,发现了Android driver 中有Kc ...

  8. unix c 07

    进程的结束函数 (exit._Exit)    exit 并不是立即退出,退出前执行 用atexit/on_exit函数 注册的函数.    exit(int status)中的status可以用 w ...

  9. Spiral Matrix II 解答

    Question Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral or ...

  10. [转载]Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton等函数小结

    转载:http://blog.csdn.net/ithomer/article/details/6100734 知识背景: 210.25.132.181属于IP地址的ASCII表示法,也就是字符串形式 ...