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 相关文章推荐
jquery实现点击TreeView文本父节点展开/折叠子节点
Jan 10 Javascript
js opener的使用详解
Jan 11 Javascript
浅谈javascript中return语句
Jul 15 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
Aug 21 Javascript
Web安全测试之XSS实例讲解
Aug 15 Javascript
AngularJS Controller作用域
Jan 09 Javascript
jQuery获取Table某列的值(推荐)
Mar 03 Javascript
JavaScript实现跟随滚动缓冲运动广告框
Jul 15 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
Jul 09 Javascript
vue-router的使用方法及含参数的配置方法
Nov 13 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
Apr 26 Javascript
js原生map实现的方法总结
Jan 19 Javascript
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
php使用百度ping服务代码实例
2014/06/19 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
php实现数字补零的方法总结
2018/09/12 PHP
PHP命名空间简单用法示例
2018/12/28 PHP
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
Augularjs-起步详解
2016/07/08 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
深入Python函数编程的一些特性
2015/04/13 Python
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
python删除字符串中指定字符的方法
2018/08/13 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
美国电子元器件分销商:Newark element14
2018/01/13 全球购物
PHP面试题及答案一
2012/06/18 面试题
购房意向书
2014/04/01 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
5.12护士节活动总结
2015/02/10 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
详解Spring事件发布与监听机制
2021/06/30 Java/Android