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 相关文章推荐
Java 正则表达式学习总结和一些小例子
Sep 13 Javascript
解决JS中乘法的浮点错误的方法
Jan 03 Javascript
javascript 表格内容排序 简单操作示例代码
Jan 03 Javascript
创建、调用JavaScript对象的方法集锦
Dec 24 Javascript
js实现鼠标悬浮给图片加边框的方法
Jan 30 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
Dec 19 Javascript
用JS生成UUID的方法实例
Mar 30 Javascript
js表单验证实例讲解
Mar 31 Javascript
Vue.js每天必学之计算属性computed与$watch
Sep 05 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
Oct 29 Javascript
vue2单元测试环境搭建
May 24 Javascript
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 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
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
BBS(php & mysql)完整版(二)
2006/10/09 PHP
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
angular2使用简单介绍
2016/03/01 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
JS制作适用于手机和电脑的通知信息效果
2016/10/28 Javascript
使用Ajax与服务器(JSON)通信实例
2016/11/04 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
python多线程http下载实现示例
2013/12/30 Python
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
Python读取图片为16进制表示简单代码
2018/01/19 Python
Python中的枚举类型示例介绍
2019/01/09 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
pycharm + django跨域无提示的解决方法
2020/12/06 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
店长岗位的工作内容
2013/11/12 职场文书
人力资源部经理的岗位职责
2014/03/04 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
创业计划书之水果店
2019/07/18 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js