JavaScript中使用Object.create()创建对象介绍


Posted in Javascript onDecember 30, 2014

对于对象的创建,除了使用字面量和new操作符,在ECMAScript 5标准中,还可以使用Object.create()来进行。Object.create()函数接受2个对象作为参数:第一个对象是必需的,表示所创建对象的prototype;第二个对象是可选的,用于定义所创建对象的各个属性(比如,writable、enumerable)。

var o = Object.create({x:1, y:7});

console.log(o);//Object {x=1, y=7}

console.log(o.__proto__);//Object {x=1, y=7}

将null作为第一个参数调用Object.create()将生成一个没有prototype的对象,该对象将不会具有任何基本的Object属性(比如,由于没有toString()方法,对这个对象使用+操作符会抛出异常):

var o2 = Object.create(null);

console.log("It is " + o2);//Type Error, can't convert o2 to primitive type

对于仅支持ECMAScript 3标准的浏览器,可以用Douglas Crockford的方法来进行Object.create()操作:

if (typeof Object.create !== 'function') {

    Object.create = function (o) {

        function F() {}

        F.prototype = o;

        return new F();

    };

}

newObject = Object.create(oldObject);
Javascript 相关文章推荐
如何让动态插入的javascript脚本代码跑起来。
Jan 09 Javascript
基于jquery的模态div层弹出效果
Aug 21 Javascript
将文本输入框内容加入表中的js代码
Aug 18 Javascript
javascript 通用loading动画效果实例代码
Jan 14 Javascript
使用Javascript写的2048小游戏
Nov 25 Javascript
json格式数据的添加,删除及排序方法
Jan 21 Javascript
搭建vue开发环境
Jul 19 Javascript
webpack实现一个行内样式px转vw的loader示例
Sep 13 Javascript
详细教你微信公众号正文页SVG交互开发技巧
Jul 25 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
Feb 27 Javascript
5种方法告诉你如何使JavaScript 代码库更干净
Sep 15 Javascript
vue-cil之axios的二次封装与proxy反向代理使用说明
Apr 07 Vue.js
JavaScript中对象property的读取和写入方法介绍
Dec 30 #Javascript
jQuery中:last选择器用法实例
Dec 30 #Javascript
JavaScript中对象property的删除方法介绍
Dec 30 #Javascript
JavaScript中检查对象property的存在性方法介绍
Dec 30 #Javascript
JavaScript中遍历对象的property的3种方法介绍
Dec 30 #Javascript
JavaScript语言对Unicode字符集的支持详解
Dec 30 #Javascript
JavaScript中的对象的extensible属性介绍
Dec 30 #Javascript
You might like
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
Javascript中构造函数要注意的一些坑
2017/01/23 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
python字符串替换的2种方法
2014/11/30 Python
python3操作mysql数据库的方法
2017/06/23 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
C语言笔试题回忆
2015/04/02 面试题
回门宴答谢词
2014/01/13 职场文书
中班幼儿评语大全
2014/04/30 职场文书
董事长助理工作职责
2014/06/08 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
学生检讨书范文
2014/10/30 职场文书
车辆安全隐患排查制度
2015/08/05 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
MySQL数据库必备之条件查询语句
2021/10/15 MySQL
Minikube搭建Kubernetes集群
2022/03/31 Servers
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA