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 相关文章推荐
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
Jun 06 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
Apr 30 Javascript
js创建表单元素并使用submit进行提交
Aug 14 Javascript
简单谈谈Javascript中类型的判断
Oct 19 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
Nov 30 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
May 30 Javascript
关于在Servelet中如何获取当前时间的操作方法
Jun 28 Javascript
在javascript中使用com组件的简单实现方法
Aug 17 Javascript
纯JS焦点图特效实例(可一个页面多用)
Dec 07 Javascript
Angularjs实现搜索关键字高亮显示效果
Jan 17 Javascript
jQuery validate 验证radio实例
Mar 01 Javascript
vue把输入框的内容添加到页面的实例讲解
Nov 11 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 zip扩展Linux下安装过程分享
2014/05/05 PHP
php中Snoopy类用法实例
2015/06/19 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
js滚动条多种样式,推荐
2007/02/05 Javascript
JavaScript 给汉字排序实例代码
2008/06/28 Javascript
js 实现复制到粘贴板的功能代码
2010/05/13 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
python网络编程学习笔记(一)
2014/06/09 Python
python实现指定字符串补全空格的方法
2015/04/30 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
浅谈Python中(&,|)和(and,or)之间的区别
2019/08/07 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
python读取hdfs并返回dataframe教程
2020/06/05 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
three.js模拟实现太阳系行星体系功能
2019/09/03 HTML / CSS
公司董事长职责
2013/12/12 职场文书
化验室技术员岗位职责
2013/12/24 职场文书
寒假思想汇报
2014/01/10 职场文书
解除劳动合同协议书
2014/04/14 职场文书
学校周年庆活动方案
2014/08/22 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
HAM-2000摩机图
2021/04/22 无线电
你需要掌握的20个Python常用技巧
2022/02/28 Python