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 相关文章推荐
onkeydown事件解决按回车键直接提交数据的需求
Apr 11 Javascript
jquery读取xml文件实现省市县三级联动的方法
May 29 Javascript
使用jspdf生成pdf报表
Jul 03 Javascript
基于jQuery实现的向下滑动二级菜单效果代码
Aug 31 Javascript
Bootstrap 实现查询的完美方法
Oct 26 Javascript
在一个页面重复使用一个js函数的方法详解
Dec 26 Javascript
js阻止移动端页面滚动的两种方法
Jan 25 Javascript
简单谈谈React中的路由系统
Jul 25 Javascript
JavaScript实现快速排序的方法分析
Jan 10 Javascript
webpack结合express实现自动刷新的方法
May 07 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
Jun 11 Javascript
vue实现element表格里表头信息提示功能(推荐)
Nov 20 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的栏目导航程序
2006/10/09 PHP
php不用内置函数对数组排序的两个算法代码
2010/02/08 PHP
ThinkPHP框架实现session跨域问题的解决方法
2014/07/01 PHP
PHP会话控制:Session与Cookie详解
2014/09/27 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
2015/01/28 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
2020/03/10 Javascript
python基于multiprocessing的多进程创建方法
2015/06/04 Python
python获取交互式ssh shell的方法
2019/02/14 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
python super函数使用方法详解
2020/02/14 Python
Python telnet登陆功能实现代码
2020/04/16 Python
Python更换pip源方法过程解析
2020/05/19 Python
德国购买健身器材:AsVIVA
2017/08/09 全球购物
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
应届生.NET方向面试题
2015/05/23 面试题
你们项目是如何进行变更控制的
2015/08/26 面试题
考博专家推荐信模板
2013/12/02 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
党员自评材料范文
2014/12/17 职场文书
亲属关系公证书样本
2015/01/23 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
2016年万圣节活动总结
2016/04/05 职场文书