JavaScript对象创建的三种常用方式:构造函数、字面量与单例模式

作者:小括号时间:2026-10-29 03:51:21浏览:181

本文介绍了JavaScript中创建对象的三种主要方法:利用函数构造函数、对象字面量以及基于函数的单例模式。通过对比分析,阐述了各方法的代码结构、性能差异及适用场景,帮助开发者根据实际需求选择最高效的对象创建方案。

在项目开发过程中,经常需要创建JavaScript对象。参考国外技术文章后,整理并实践了三种常见的对象创建方式,现将其核心要点分享如下。

利用函数创建对象

第一种方法:利用函数创建对象

具体实现代码如下:

//定义对象
function Animal(type)
{
this.name="";
this.type=type;
this.introduction=function(){
return "我的名字是: "+this.name+",我属于 "+this.type;
}
}
var animal=new Animal("家禽"); //实例化我们上面创建的对象
animal.name="小红";
alert(animal.introduction()); //调用它的introduction函数(此时,页面会弹出:我的名字是 小红,我属于 家禽);

这种方式虽然常见,但存在性能损耗。使用new关键字实例化对象时,引擎会执行两步操作:一是定义匿名构造函数(如Animal),二是立即调用它。相比之下,后续介绍的方法在效率上更具优势。

利用对象字面量

第二种方法:利用对象字面量(object literals)

此处翻译可能存在细微差异,建议对照原文地址查阅。

具体实现代码如下:

//定义对象
var Book=
    {
name:"红楼梦",
type:"文学作品",
getAuthor:function()
    {
return :"我是曹雪芹的孩子!";
    }
   }
alert(Book.GetAuthor()); //调用对象方法,此时页面会出现:我是曹雪芹的孩子。
Book.name="灌篮"; //修改对象属性
alert(Book.name); //此时,页面会弹出:灌篮

从代码结构可见,该方法更为高效。它相当于直接定义了一个JavaScript全局变量,无需通过实例化即可直接使用。尽管这种写法在视觉上可能略显生硬,但可以通过第三种方法进一步优化。

单例模式实现

第三种方法:单例模式(Singleton using a function)

关于"单例模式"的翻译可能不够精准,请结合代码理解:

具体实现代码如下:

//定义对象
var Gender=new function()
 {
this.type="女生";
this.speaking=function()
{
return "我是"+this.type;
}
}
alert(Gender.speaking();) //使用对象 此时页面会出现:我是女生。

对比前两种方法,此代码结构看似相似,但工作机制不同。第一种方法每次使用对象时都会重新创建实例,而此方法仅创建一次对象,即可永久复用。这种特性与设计模式中的单例模式高度一致。

作者最新文章