当前位置:首页 > 日记 > 正文

用Javascript定义类或对象的五种方法的摘要

用Javascript定义类或对象的五种方法的摘要
第一种方法:工厂方法

可以创建和返回特定类型对象的工厂函数(工厂函数)。

功能createcar(scolor){
无功otempcar =新的对象;
otempcar.color = scolor;
otempcar.showcolor =函数(){
警戒(这个颜色);
};
返回otempcar;
}
无功ocar1 = createcar();
无功ocar2 = createcar();
当这个函数被调用时,会创建一个新的对象和所有必要的属性给出。使用这种方法,汽车的对象的两个版本(ocar1和ocar2)将被创建,其性质是完全一样的。

使用这种方法的问题:

1似乎不象使用构造函数的new操作符那样正式。

2创建一个对象必须以这种方式创建的方法。每次你打电话给createcar(),你创建显示颜色对话框(),这意味着每个对象都有自己的版本显示颜色对话框()。事实上,每个对象共享相同的函数。

一些开发人员定义了工厂功能之外的对象的方法,然后通过属性指向方法,以避免这个问题:

功能createcar(scolor){
无功otempcar =新的对象;
otempcar.color = scolor;
otempcar.showcolor =显示颜色对话框;
返回otempcar;
}
功能显示颜色对话框(){
警戒(这个颜色);
}
在重写代码,功能是显示颜色对话框()函数前createcar定义(),并在createcar(),该对象赋值给指针已经指向现有的显示颜色对话框()函数。在功能上,这解决了重复创建对象的问题,但功能不看起来像一个对象的方法。

所有这些问题都导致了开发人员定义的构造函数的出现。

第二种方法:构造函数方法

功能车(scolor){
this.color = scolor;
this.showcolor =函数(){
警戒(这个颜色);
};
}
无功ocar1 =新车(红色);
无功ocar2 =新车(蓝色);
你可能已经注意到的第一个差异,不能创建对象的构造函数,但使用此关键字,当构造函数是用new操作符调用,对象是之前创建的第一行代码被执行,并且只有这可以用来访问对象,那么这个属性可以直接给出,默认构造函数的返回值(没有返回算子的显式使用)。

这样,与工厂法一样,管理职能也存在同样的问题。

第三种方式:原型

函数汽车(){
}
car.prototype.color =蓝色;
无功ocar1 =新车();
无功ocar2 =新车();
呼唤新汽车时,(),原型的所有属性都是立即分配给对象被创建,这意味着所有的汽车实例的指针显示颜色对话框()函数,在语义上,它似乎是一个对象,因此解决了这两个问题在前两种方式存在。此外,使用这种方法,你也可以使用instanceof检查对象由一个给定的变量的类型。因此,下面的代码将输出真:

警报(OCAR是汽车); / /输出真

它看起来很好,可惜它没有它那么好。

1首先,这个构造函数没有参数。当原型使用,构造函数可以不通过参数初始化属性值的构造函数,因为CAR1和小车性能均等于red

2真正的问题发生在属性指向对象而不是函数时。函数共享不会引起任何问题,但是对象很少被多个实例共享。

第四种方法:混合构造函数/原型(推荐)

构造函数和原型的联合使用可以创建像其他编程语言一样的对象,这个概念非常简单,即使用构造函数定义对象的所有非功能属性,并以原型的方式定义对象的函数属性。

功能车(scolor){
this.color = scolor;
this.drivers =新的数组(迈克
}
car.prototype.showcolor =函数(){
警戒(这个颜色);
}
无功ocar1 =新车(红色);
无功ocar2 =新车(蓝色);
ocar1.drivers.push(马特);
警报(ocar1。司机); / /输出迈克,苏,马特
警报(ocar1。司机); / /输出迈克苏
第五种方式:动态原型(推荐)

开发者使用其他语言,感觉不太和谐的使用一个混合的构造函数/原型。人批评混合构造函数/原型的方法,认为这是不合理的找到一个方法在构造函数通过寻找一个构造函数属性。所以设计了动态原型提供更友好的编码风格。

动态原型方法的基本思想是混合构造函数/原型的方式,那都是一样的,在构造函数的非功能属性的定义和功能属性是由原型属性定义的。唯一的区别就是给对象方法的位置。以下是用重写动态原型方法的汽车类:

功能车(scolor){
this.color = scolor;
this.drivers =新的数组(迈克
如果(typeof的车。_initialized = = undefined){
car.prototype.showcolor =函数(){
警戒(这个颜色);
}
}
_initialized =真车;
}
上述五种方式在Javascript中定义类或对象是共享的全部内容,小编的,希望能给大家一个参考,希望你能支持它。

相关文章

如何在Dreamweaver中设置css面板

如何在Dreamweaver中设置css面板

设置,面板,如何在,电脑软件,Dreamweaver,如何在Dreamweaver中设置css面板 1,首先,我们需要您构建一个新的HTML文档,在这里我们直接打开该工具,然后选择新的HTML 2。设置后,我们使用快捷键、Shift + F11,然后我们可以看到CSS面板 3,如下图所示,在面…

如何应对PS图象处理软件的画笔大小

如何应对PS图象处理软件的画笔大小

快捷方式,图象,如何应对,处理软件,大小,是快捷键,PS调整在赢10刷的大小让我们看看它是否是下面的问题。 软件名称:Adobe PS图象处理软件8全绿色中文版软件大小:150.1mb更新时间:2015-11-04 1、首先要删除画笔大小,快捷键设置错误,编辑编辑键盘…

PS图象处理软件如何设计砖和词的影

PS图象处理软件如何设计砖和词的影

图象,处理软件,电脑软件,PS,这是一个很简单的文字效果,做的是一个砖字,详细教程如下。 软件名称:Adobe PS图象处理软件8全绿色中文版软件大小:150.1mb更新时间:2015-11-04 1,先看效果图! 2。构建一个新文件,500 * 400,白色背景;构建一个新层,并使用…

用ps改变图像显示尺寸的3种方法

用ps改变图像显示尺寸的3种方法

图像显示,种方法,尺寸,电脑软件,ps,有时候照片的一部分太小,看不清楚。它需要扩大。有时编辑器必须放大。以下是萧边可以分享PS改变图像的尺寸3。没有朋友可以参考这篇文章。 方法1 1,打开PS并打开图片进行操作。 2,单击工具箱中的放大镜。 …

总结Javascript中的隐式类型转换

总结Javascript中的隐式类型转换

隐式类型转换,电脑软件,Javascript,Javascript的数据类型分为空、未定义、布尔、串、数、对象六类,对象是引用类型,其余五类是基本类型或原始类型。 例如,像数(),或者parseInt(),parseFloat(),都属于显示类型转换(强制类型转换); 在本节中,我们将讨论隐式类型转…

森林仙女场景中ps的合成

森林仙女场景中ps的合成

仙女,森林,景中,电脑软件,ps,渲染效果的材料不多,但是当我们合成时,我们需要更加细致地工作。如果人物需要处理整个光影,头发和装饰需要与森林结合,这样画面就更自然了。 最终效果 1,创建一个合适的背景。使用你的想象力,而不是仅仅使用固定的材…

MySQL5.6.13安装免费版的配置方法

MySQL5.6.13安装免费版的配置方法

配置,安装,免费版,方法,电脑软件,本文记录了在前一个项目中配置MySQL的问题,该问题涉及到安装一个免费版本。今天,我们向大家分享配置方法,供大家学习。 1。MySQL社区服务器下载5.6.13 2。压缩包解压MySQL 解压下载的压缩包到MySQL的自定义…

PS图象处理软件快速制作光亮的金属

PS图象处理软件快速制作光亮的金属

立体字,图象,光亮,处理软件,快速,最终效果 1,新建一个黑色的600×400文档。然后使用T文字工具选择字体宋体,大小160pt,颜色设置为# d5d5d5,效果如下。 2,图层样式设置:斜角和浮雕。 图层样式设置如下:笔画。 效果如下。 3,然后添加一些灯光效果,得出…

mysql安装程序详细教程(1)

mysql安装程序详细教程(1)

详细教程,安装程序,电脑软件,mysql,MySQL数据库是跨平台的,不仅运行在Windows上,而且运行在UNIX、Linux和Mac OS等操作系统上。 1。首先,简单地说MySQL的版本: 操作系统的类型可以分为Windows、UNIX、Linux和Mac OS。 根据不同的用户群体,社…

MySQL数据库1067错误数的解决方案

MySQL数据库1067错误数的解决方案

错误,解决方案,数据库,电脑软件,MySQL,MySQL 5.6安装在Windows 7 64位专业系统下,但有一天发生错误,错误号:1067;如何解决这个问题 下面是解决步骤: 1,登陆系统管理员; 2,停止MySQL服务; 3,输入CMD命令行模式,然后输入MySQL安装目录,假设它是5.6的…

如何使简单的三维立体图的AI

如何使简单的三维立体图的AI

立体图,简单,电脑软件,AI,很多时候,我们都想做一些图形或图片的3D效果,因为3D效果看起来更加立体和空间。所以,我们怎么能做一些简单的3D立体图和AI软件 软件名称:Adobe Illustrator(AI)CC官方简体中文版软件大小:1.76gb更新时间:2014-08-29 1,例…

MySQL登录中的闪络问题的解决方案

MySQL登录中的闪络问题的解决方案

解决方案,登录,电脑软件,MySQL,MySQL登录中的闪络问题的解决方案 MySQL以前很好地使用过它,但是今天,在输入MySQL之后,输入的密码是闪回来的。在任务管理器中,发现MySQL服务没有启动。当手动启动时,它提示拒绝访问。在因特网上查找问题的原因。…