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

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、构造函数方法

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

复制代码代码如下所示:

功能车(颜色,门){

this.color =颜色;

this.doors =门;

this.showcolor =函数(){

警戒(这个颜色)

};

}

VaR CAR1 =新车(红

VaR的车=新车(蓝
您可以看到构造函数不使用这个关键字在函数中创建对象,因为在调用构造函数时创建对象,而对象属性只能在函数中使用。

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

3、原型模式

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

复制代码代码如下所示:

函数汽车(){

}

car.prototype.color =红色;

car.prototype.doors = 4;

car.prototype.showcolor =函数(){

警戒(这个颜色);

}

VaR CAR1 =新车();

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

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

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

复制代码代码如下所示:

函数汽车(){

}

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
5。动态原型
动态原型类似于混合构造函数/原型方法,唯一的区别是给出对象方法的位置。

复制代码代码如下所示:

功能车(颜色,门){

this.color =颜色;

this.doors =门;

this.arr =新的阵列(AA

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

car.prototype.showcolor =函数(){

警戒(这个颜色);

};

_initialized =真车;

}

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

6。混合工厂模式

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

复制代码代码如下所示:

函数汽车(){

无功控=新的对象();

ocar.color =红色;

ocar.doors = 4;

ocar.showcolor =函数(){

警戒(这个颜色)

};

返回控;

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

以上是本文的全部内容,希望大家能喜欢。

相关文章

ai设计,创意温馨的个性风格美女贺卡

ai设计,创意温馨的个性风格美女贺卡

创意,温馨,风格,个性,美女,本教程主要是向朋友介绍ai,设计创意,温馨个性的美容卡。本教程制作的卡片非常漂亮,难度也不大。建议像这样的朋友可以和教程一起学习。 本教程主要是向大家介绍一下AI设计创意的方式,温馨的个性风格,精美的卡片,由教程…

PS巧用滤镜制作多彩多彩的羽毛。

PS巧用滤镜制作多彩多彩的羽毛。

滤镜,多彩,巧用,羽毛,电脑软件,本教程是向我的朋友介绍PS,用精巧的滤镜制作美丽多彩的羽毛花。这个教程制作的羽毛花真的很漂亮,难度也不是很大,所以很适合初学者学习和推荐。希望你能喜欢。 本教程介绍用PS过滤器使朋友漂亮多彩的羽毛花的方…

逃避与unescape功能代码共享在Java

逃避与unescape功能代码共享在Java

代码,功能,电脑软件,unescape,PHP,这种很好用。函数,PHP做JSON转换GBK字符,如中国、日本、韩国神马Unicode是最合适的。 classcoding { Javascript的逃避和unescape / /复制功能 functionunescape($str) { 文本= preg_replace_callback美元( / % { 0-…

PHP的4种常见操作模式

PHP的4种常见操作模式

模式,操作,常见,电脑软件,PHP,SAPI:服务器应用程序编程接口的服务器应用程序编程接口,它是PHP和其他应用程序之间的接口。执行PHP脚本有很多方法。它也可以嵌入其它程序通过Web服务器或直接指挥line.sapi下提供了一个接口,外部沟通,和常见的SAP…

为什么我的QQ登录后没有设置QQ登录

为什么我的QQ登录后没有设置QQ登录

登录,设置,电脑软件,QQ,这是因为你使用的QQ版本不支持你当前的QQ登录保护设置: 1、qq2009beta版本之前的Windows版本,之前的版本tm2009beta,所有macqq、LinuxQQ、QQ版本的QQ不支持QQ登录保护,所以这些版本的用户将无法在设置QQ登录保护登录QQ…

PHP使用图像MagickPDF文件转换为JP

PHP使用图像MagickPDF文件转换为JP

文件,图像,转换为,电脑软件,PHP,本文阐述了PHP使用图像魔法转换PDF文件到JPG文件的方式。分享给你供你参考。以下是如下: 这是一个非常简单的格式转换程序,可以变换进行文件into.jpg文件和代码必须工作。服务器必须安装镜像魔法扩展。 pdf_f…

Ajax的定时调用每5秒调用一次。

Ajax的定时调用每5秒调用一次。

调用,电脑软件,Ajax,复制代码代码如下所示: 功能initxmlrequest(){ 如果(窗口。ActiveX对象){ xmlrequest =新的ActiveX对象(微软。XMLHTTP ); {人} 如果(窗口。XMLHttpRequest){ xmlrequest =新的XMLHttpRequest(); } } } 功能sendhttprequest(){ InitX…

CDR导出PSD分层图的详细教程。

CDR导出PSD分层图的详细教程。

详细教程,分层图,电脑软件,CDR,PSD,接下来,我们将带CDR导出PSD分层图的详细教程。这个教程很实用。对于很多不懂操作的朋友,我们可以过来学习,希望能帮到你。 CDR PSD分层图把详细的教程,虽然CDR也有一个位图处理软件(corelpp),它被认为是最常见的…

轻松制作漂亮的立体教程

轻松制作漂亮的立体教程

教程,轻松,漂亮,电脑软件,本教程主要是向朋友介绍CDR,制作简单美观的三维文字方法。这个教程制作的立体字真的很漂亮,难度也不大。建议你喜欢你的朋友一起学习。 本教程教朋友用CDR制作立体字,其实用CDR制作立体词很简单,只是我们不知道怎么走,…

化妆品瓶教程PS图象处理软件完善的

化妆品瓶教程PS图象处理软件完善的

教程,图象,处理软件,电脑软件,PS,这个图的思路很好,这个过程:先得到产品图片后不急于处理,先分析,找出缺点,然后从底部开始修复不同材质,需要不同的高光渲染。 这个图的思路很好,这个过程:先得到产品图片后不急于处理,先分析,找出缺点,然后从底部开始…

取消缓存微信浏览器的方法

取消缓存微信浏览器的方法

浏览器,缓存,取消,方法,电脑软件,本文主要介绍了取消微信浏览器缓存的方式。在本文中,我们使用元头信息取消微信浏览器缓存,特别是当它是发展的,所以我们可以向我们的朋友。 做微信公众号和手机调试页面,不能避免页面跳转到微信浏览器打开,调试…

PS图象处理软件增加画面的光线美丽

PS图象处理软件增加画面的光线美丽

行星,图象,光线,处理软件,画面,在图片上添加行星似乎很简单。有很多细节需要注意,首先要解决好行星与云层之间的关系,云层会显示出暗淡的行星会更自然,而且行星以后还需要添加一些具有发光效果的图层样式,所以效果更逼真。 在图片上添加行星似…