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 相关文章推荐
引用 js在IE与FF之间的区别详细解析
Nov 20 Javascript
JS 操作Array数组的方法及属性实例解析
Jan 08 Javascript
node.js中的fs.appendFileSync方法使用说明
Dec 17 Javascript
浅谈javascript实现八大排序
Apr 27 Javascript
js去除浏览器默认底图的方法
Jun 08 Javascript
Angular2数据绑定详解
Apr 18 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
Jun 21 Javascript
微信小程序入口场景的问题集合与相关解决方法
Jun 26 Javascript
layui layer select 选择被遮挡的解决方法
Sep 21 Javascript
JavaScript使用setTimeout实现倒计时效果
Feb 19 Javascript
JavaScript中关于预编译、作用域链和闭包的理解
Mar 31 Javascript
vue-cli4.5.x快速搭建项目
May 30 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
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
模板引擎smarty工作原理以及使用示例
2014/05/25 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
详解ES6中class的实现原理
2020/10/03 Javascript
Python中IPYTHON入门实例
2015/05/11 Python
Python中%r和%s的详解及区别
2017/03/16 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
北美领先的牛仔品牌:Buffalo David Bitton
2017/05/22 全球购物
幼儿园毕业家长感言
2014/02/10 职场文书
敬老月活动总结
2014/08/28 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
教师工作决心书
2015/02/04 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android