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 圆形旋转图片滚动切换效果
Jan 19 Javascript
js取滚动条的尺寸的函数代码
Nov 30 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
Dec 21 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
May 05 Javascript
jQuery实现向下滑出的二级菜单效果实例
Aug 22 Javascript
详解Javascript模板引擎mustache.js
Jan 20 Javascript
JavaScript 正则表达式中global模式的特性
Feb 25 Javascript
Bootstrap登陆注册页面开发教程
Jul 12 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
Nov 25 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
Apr 11 Javascript
JS触摸事件、手势事件详解
May 04 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
Nov 05 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版国家代码、缩写查询函数代码
2011/08/14 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
2017/05/04 PHP
PHP树形结构tree类用法示例
2019/02/01 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
理解Javascript_09_Function与Object
2010/10/16 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
js在ie下打开对话窗口的方法小结
2016/10/24 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
2018/08/25 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
python django事务transaction源码分析详解
2017/03/17 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
html5使用Drag事件编辑器拖拽上传图片的示例代码
2017/08/22 HTML / CSS
大学生预备党员自我评价分享
2013/11/16 职场文书
网站美工岗位职责
2014/04/02 职场文书
暑期培训班策划方案
2014/08/26 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
面试自我评价范文
2014/09/17 职场文书
公务员个人考察材料
2014/12/23 职场文书
公司庆典主持词
2015/07/04 职场文书
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python