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 相关文章推荐
DOM节点深度克隆函数cloneNode()用法实例
Jan 12 Javascript
JavaScript中闭包的写法和作用详解
Jun 29 Javascript
基于js中的原型、继承的一些想法
Aug 10 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
Feb 15 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
Jul 18 Javascript
基于Vue实现支持按周切换的日历
Sep 24 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
Oct 31 Javascript
Vue2 模板template的四种写法总结
Feb 23 Javascript
探秘vue-rx 2.0(推荐)
Sep 21 Javascript
Bootstrap4 gulp 配置详解
Jan 06 Javascript
基于js实现抽红包并分配代码实例
Sep 19 Javascript
vue2.x 对象劫持的原理实现
Apr 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
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
javascript两段代码,两个小技巧
2010/02/04 Javascript
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
BootStrap3学习笔记(一)之网格系统
2016/05/20 Javascript
JavaScript中String对象的方法介绍
2017/01/04 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
jquery实现企业定位式导航效果
2018/01/01 jQuery
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
Python自动连接ssh的方法
2015/03/07 Python
Python中encode()方法的使用简介
2015/05/18 Python
Python实现的爬虫功能代码
2017/06/24 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
把富文本的回车转为br标签
2019/08/09 HTML / CSS
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
error和exception有什么区别
2012/10/02 面试题
新闻专业应届生求职信
2013/10/31 职场文书
2014年安全生产目标责任书
2014/07/23 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
工程部文员岗位职责
2015/02/04 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
uniapp开发小程序的经验总结
2021/04/08 Javascript
实现GO语言对数组切片去重
2022/04/20 Golang