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

用Javascript定义类的方法

用Javascript定义类的方法
用js定义类有很多种方法:

1。工厂模式

复制代码代码如下所示:

函数汽车(){

无功控=新的对象;

ocar.color =蓝色;

ocar.doors = 4;

ocar.showcolor =函数(){

document.write(这个颜色)

};

返回控;

}

VaR CAR1 =车();

VaR的车=车();
当你调用这个函数时,你创建一个新的对象并赋予它所有的属性和方法。使用这个函数,你可以创建2个具有相同属性的对象。当然,我的姐姐可以通过将参数传递给它来改变它。

复制代码代码如下所示:

功能车(颜色,门){

无功控=新的对象;

ocar.color =颜色;

ocar.doors =门;

ocar.showcolor =函数(){

document.write(这个颜色)

};

返回控;

}

VaR CAR1 =车(红

VaR的车=车(蓝

car1.showcolor() / /输出:红

car2.showcolor() / /输出:蓝色
现在可以通过向函数传递不同的参数来获得具有不同值的对象。

在前面的例子中,每次调用函数的车()是创建显示颜色对话框(),这意味着每个对象都有它自己的显示颜色对话框()方法。

但实际上,每个对象都有相同的功能。

虽然方法可以在函数之外定义,但是方法是由函数的属性来指示的。

复制代码代码如下所示:

功能显示颜色对话框(){

警戒(这个颜色);

}

函数汽车(){

无功控=新的对象();

ocar.color =颜色;

ocar.doors =门;

ocar.showcolor =显示颜色对话框;

返回控;

}
但它看起来不像一个函数方法。

2、构造函数方法

构造函数与工厂方法一样简单,如下所示:

复制代码代码如下所示:

功能车(颜色、门)
您可以看到构造函数不使用这个关键字在函数中创建对象,因为在调用构造函数时创建对象,而对象属性只能在函数中使用。

现在要创建具有新对象的对象,它看起来是这样的,但它与工厂的方法相同。

3、原型模式

该方法利用了对象的原型属性,首先用空函数创建类名,所有属性和方法都给出了原型属性。

复制代码代码如下所示:

功能车()
在这个代码中,首先定义一个空函数,对象的属性由原型属性定义,当调用函数时,原型的所有属性将立即分配给要创建的对象。该函数的所有对象都是指针显示颜色对话框()。它们在语法上都属于同一个对象。

但是,这个函数没有参数,不能通过传递参数初始化属性,并且在创建对象后必须更改属性的默认值。

原型设计的一个严重问题是当属性指向对象,比如数组。

复制代码代码如下所示:

函数汽车(){

}

car.prototype.color =红色;

car.prototype.doors = 4;

car.prototype.arr =新的数组(

car.prototype.showcolor =函数(){

警戒(这个颜色);

}

VaR CAR1 =新车();

VaR的车=新车();

car1.arr.push(CC);

警报(CAR1。ARR); / /输出:AA、BB、CC

警报(CAR2,ARR); / /输出:AA、BB、CC
由于阵列的参考价值,对同一系列的车点的两个对象,所以当值添加到CAR1,也是在车看到。

联合使用构造函数/原型来创建对象以及其他编程语言。它是一种通过构造函数定义对象非功能属性的原型定义对象的方法。

复制代码代码如下所示:

功能车(颜色,门){

this.color =颜色;

this.doors =门;

this.arr =新的阵列(AA

}

Car.prototype.showColor(){

警戒(这个颜色);

}

VaR CAR1 =新车(红

VaR的车=新车(蓝

car1.arr.push(CC);

警报(CAR1。ARR); / /输出:AA、BB、CC

警报(CAR2,ARR); / /输出:AA、BB
4。动态原型

动态原型类似于混合构造函数/原型方法,唯一的区别是给出对象方法的位置。

复制代码代码如下所示:

功能车(颜色,门){

this.color =颜色;

this.doors =门;

this.arr =新的阵列(AA

如果(typeof的车。_initialized = = undefined){

car.prototype.showcolor =函数(){

警戒(这个颜色);

};

_initialized =真车;

}

}
动态原型使用一个标志来确定原型是否被赋予了一个方法,这确保了该方法只创建一次。
6。混合工厂模式

它的目的地创建一个false构造函数,只返回另一个对象的新实例。

复制代码代码如下所示:

函数汽车(){

无功控=新的对象();

ocar.color =红色;

ocar.doors = 4;

ocar.showcolor =函数(){

警戒(这个颜色)

};

返回控;

}
与工厂方法不同,新操作符是用这种方式使用的。

PS(个人理解):

1)原型定义的类成员(方法或属性)是每个类的公共对象。一般来说,没有定义成员属性。对象修改属性值并修改所有对象。

2)类具有原型属性,类对象不是;

3)每一个新的类对象或直接调用类(以下工厂方法形式)将执行定义类(函数)的语句一次(单例模式可以避免这种情况)。

4)类是函数类型,类对象是对象类型,只有函数类型是原型属性;

5)由原型定义的方法不能访问类(类定义的局部变量)的私有变量,但是通过它可以访问类成员属性和成员方法(定义的变量和方法)。

6)定义类的方法:

工厂模式(对象)

b.继承模式(原型)

C.构造函数模式(这个)

D.混合法

7){为什么由原型定义的属性可以被任何对象改变构造函数方法定义的属性只属于对象,不影响其他对象的属性值。

以上是对象方法的所有发明,目前最广泛使用的是混合构造函数/原型模式。此外,动态原型技术也很流行,它的功能相当于构造函数/原型模式。

相关文章

一些用在Word2003Word2003教程写报

一些用在Word2003Word2003教程写报

教程,报告,用在,简介,技术,信息时代注重效率。如果我们要不断提高工作效率,我们必须熟练掌握的技能,除了掌握Word2003的正确使用,让你的一些我们利用Word2003写报告的技术分享。 1。隐藏文本 文本的背景色,方法是隐藏的,最入门的方法,当然,这也是…

word2010中设置封面的两种方法

word2010中设置封面的两种方法

方法,设置,封面,两种,电脑软件,  Word2010如何制作封面使你的文档变得独特呢?那么下面就由小编给大家分享下word2010中设置封面的技巧,希望能帮助到您。word2010中设置封面方法一1编辑好word文档。word2010中设置封面的方法图1  2单击&l…

PS图象处理软件设计和制造的下载按

PS图象处理软件设计和制造的下载按

下载,图象处理,软件设计,按钮,电脑软件,这个PS教程学习如何使用PS图象处理软件进行简单的下载按钮,主要使用自定义形状工具和图层样式。 先看看效果吧。 新文档400x300像素,背景白色,画一个圆角矩形的图层。 添加图层样式。 效果如下。 新…

方法传递参数的jQuery示例

方法传递参数的jQuery示例

传递参数,方法,示例,电脑软件,jQuery,教您如何将参数传递给由方法上的jQuery绑定的函数,代码如下所示: 复制代码代码如下所示: $(。loadingflower ),(单击 函数回调(事件){ console.log(事件数据。名称); / / = > 123 1参数 console.log(事件数据。I…

PS鼠标画写实豆浆油条

PS鼠标画写实豆浆油条

鼠标,油条,豆浆,电脑软件,PS,豆浆油条是中国人最喜欢的早餐,今天萧边介绍PS豆浆油条鼠绘逼真绘制的使用教程,豆浆和油条都很好,豆浆更现实。喜欢的朋友可以一起 豆浆油条是中国人最喜欢的早餐,今天萧边介绍PS豆浆油条鼠绘逼真绘制的使用教程,豆…

PS图象处理软件用恢宏大气的金色的

PS图象处理软件用恢宏大气的金色的

图象,大气,处理软件,金色,电脑软件,PS图象处理软件出色的国庆节金色立体字,使表面的文字和立体表面分别制作立体字的时候。首先,做表面的文字,然后复制表面的文字在相同的比例进行三维表面,使表面的三维表面保持文本的细节和整体很完整。 在制…

jQuery操作复选框复选框的方法摘要

jQuery操作复选框复选框的方法摘要

复选框,操作,方法,摘要,电脑软件,本文的示例总结了jQuery操作复选框复选框的方法,供大家参考,具体分析如下: jQuery的三种检查检查方法: 复制代码如下:$(输入)。Attr(检查); / /返回:检查版本1.6 +或未定义的,1.5或假返回真 $(输入)。(检查); 16 $(输入)。…

PS创建一个超酷的快速合成引人注目

PS创建一个超酷的快速合成引人注目

引人注目,创建一个,超酷,海报,快速,需求方说:应该有光!所以,光有…当你浏览一些优秀的作品,你经常会看到一些奇妙的灯光效果。有时我们会问自己:这些让页面看起来高光如何今天搜狐学生通过案例教你快速建立一个背光场景 需求方说:;明亮的光!;因此,我…

用javascript方法实现鼠标的透明显示

用javascript方法实现鼠标的透明显示

透明,方法,鼠标,显示,电脑软件,本文介绍了鼠标图像透明度的javascript诱导方法,供大家参考,具体实现方法如下: 复制代码代码如下所示: 鼠标的图像透明度显示效果 功能使可见(狗,这){ 如果(= = 0) 过滤器。alpha。透明度= 100 其他的 过滤器。alpha。…

PS教你创建一个超现实的工作:在你的

PS教你创建一个超现实的工作:在你的

出了,教你,创建一个,一棵树,身上,本文主要介绍了PS教你营造超现实的作品:身上长出的树。这个教程有点复杂,但是效果很好。喜欢的朋友可以一起学习。 创建一个新的1000 * 1000像素背景图层,打开天空地图,M选择工具来选择天空的一部分,V移动工具移…

jQuery应用程序的jQuery链使用示例

jQuery应用程序的jQuery链使用示例

应用程序,示例,电脑软件,jQuery,本文演示了jQuery应用程序的jQuery链的使用,供大家参考,具体分析如下: 很多时候,我们可以将jQuery语句链接在一起,不仅缩短了代码的长度,而且在许多情况下实现了特殊的效果: 复制代码代码如下所示: $(函数(){()) $(div)…

js实现了更改浏览器窗口大小时触发

js实现了更改浏览器窗口大小时触发

事件,方法,浏览器,实现了,窗口,本文演示了当浏览器窗口大小改变时js如何触发事件: 事件window.onresize触发时,浏览器的窗口大小被改变 指定事件的代码: 复制代码如下:window.onresize =函数(){() } 例如: 浏览器可以查看区域信息: 复制代码…