kobe

快乐工作:前端;健康生活:篮球;爱笑笑

javascript:利用Object.create()方法创建对象

在javascript里面,我们知道有两种常见的创建对象的方法,一种是使用对象直接量:

对象直接量是由若干值/键对组成的映射表,值/键对用逗号”,“分隔开,整个部分用花括号”{}“括起来。

例如:

var empty={};
var people = {
  name:'kobe',
  age:'34'
};
另外一种方法是通过new创建对象:在new后面使用一个函数调用,这个函数也成为构造函数,通过new来初始化一个新的对象。

例如:

var arr = new Array();
var date = new Date();
var obj = new Object();
其实javascript在ECMAScript5中还定义了一个方法来创建一个对象,Object.create(),参数可以是某个对象。

例如:

var o = Object.create({x:1});

那么新创建的对象o的原型就是Object.create()中传入的参数,同时对象o也拥有了属性x。

当然也可以创造一个普通的控对象,类似于var o = {}的效果,只需要在将参数改为Object.prototype即可,让create出来的对象的原型=Object.prototype,其实也就是Object的实例了。

var o1 = Object.create(Object.prototype);
var o2 = new Object;
var o3 = {};

从上图可以看到,这三种方法创建的对象是一样的,即一个最普通的Object对象。

此外,还可以通过传入参数null来创建一个没有原型的新对象,这个功能是前两种方法所不具备的。

var o4 = Object.create(null);

这个新建的对象很可怜,他没有任何的原型,也就是说它连Object内置的方法都没有,不能toString(),valueOf等等。





posted @   胡涛儿  阅读(441)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示