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

浅谈面向对象类中javascript的实现

浅谈面向对象类中javascript的实现
物体是人们想要研究的任何东西,从最简单的整数到复杂的飞行器等等,都可以看作是一个物体。它不仅能表达具体的事物,而且能表达抽象的规则、计划或事件。——百度百科

面向对象编程(OP)是最流行的编程模型,但它是最广泛使用的前端,不支持面向对象的Javascript,这让人沮丧。

javascript没有访问修饰符,它不定义类关键字类,它不支持继承或扩展冒号,它不是用来支持虚函数的虚拟,而是Javascript是一种灵活的语言,在这里我们看到没有类关键字javascript如何实现类的定义,并创建对象。

定义一个类并创建一个类的实例对象

在Javascript中,我们使用函数定义类,如下所示:

复制代码代码如下所示:

函数形状()

{

变量x=1;

var=2;

}
你可能会说,怀疑这不是函数的定义吗是的,这是定义函数,我们定义了一个形状函数并初始化了x和y,但是,如果你改变了观点,这就定义了一个形状类,它有两个属性x和y,分别为1和2,但是我们定义了类的键是函数而不是类。

然后,我们可以创建类的对象的形状的形状,如下:

复制代码代码如下所示:

VaR形=新的形状();
界定公共财产和私有财产

我们已经创建了图形对象,但当我们试图访问它的属性,我们犯了一个错误,如下:

复制代码代码如下所示:

x = 1的形状;
这表明用var定义的属性是私有的,我们需要使用这个关键字来定义公共属性。

复制代码代码如下所示:

函数形状()

{

这个,x=1;

这个,y=2;

}
通过这种方式,我们可以访问形状的属性,例如:

复制代码代码如下所示:

x = 2的形状;
好的,我们可以总结上面的代码:var可以定义类的私有属性,并且可以用这个定义类的公共属性。

公共和私有方法的定义

在Javascript中,函数是函数类的一个实例,功能间接继承的对象,所以,作为一个对象,函数,因此,我们可以利用课程的分配方法创建一个函数,也可以是一个函数赋值给一个变量,那么这个类,可以调用的方法和属性变量因为它是一个可执行的功能,代码如下:

复制代码代码如下所示:

函数形状()

{

变量x=0;

var=1;

这个函数=函数()

{

打印;

};

}
我们在上面的代码中定义了一个绘图,并为它分配一个函数。其次,我们可以通过图形调用此函数,称为面向对象程序设计中的公共方法,如:

复制代码代码如下所示:

AShape.draw();
如果在瓦尔河中定义,则绘制变成私有的,OOP称为私有方法,例如:

复制代码代码如下所示:

形函数()

{

变量x=0;

var=1;

函数()

{

打印;

};

}
这不能用ashape.draw调用这个函数。

构造函数

Javascript不支持OOP。当然,没有构造函数。但是,我们可以自己模拟构造函数,并在创建对象时自动调用它。代码如下:

复制代码代码如下所示:

形函数()

{

函数()

{

构造函数代码

};

init();

}
在形状的结尾,我们人工调用init函数。然后,当我们创建一个形状对象时,init总是自动调用,它可以模拟我们的构造函数。

构造函数的参数

如何使构造函数具有参数事实上,将传入的参数写入函数的参数列表是很容易的,例如:

复制代码代码如下所示:

函数形状(斧头,哦)

{

变量x=0;

var=0;

函数()

{

构造函数

=斧头;

y =;

};

init();

}
通过这种方式,我们可以创建这样的对象:

复制代码代码如下所示:

VaR的形状=新的形状(0,1);
静态和静态方法

我们如何定义Javascript中的静态属性和方法如下所示:

复制代码代码如下所示:

函数形状(斧头,哦)

{

变量x=0;

var=0;

函数()

{

构造函数

=斧头;

y =;

};

init();

}

形状=计数= 0;定义一个计数的静态属性,这个属性属于类,而不是对象。

形状。静态方法=函数(){ }; / /定义一个静态方法
使用静态属性和方法,我们可以用类名访问它,如下所示:

复制代码代码如下所示:

警报(图形。计数);

AShape.staticMethod ();
注意:静态属性和方法是公开的。到目前为止,我不知道如何使静态属性和方法私有化。

在方法中访问类的公共属性和私有属性

在类方法中访问自己的属性,Javascript具有公共和私有属性的不同访问方法,请查看下面的代码:

复制代码代码如下所示:

函数形状(斧头,哦)

{

变量x=0;

var=0;

这个GX = 0;

这个= 0;

函数()

{

x = AX;对私有属性的访问,直接写变量名

y =;

这个GX = AX; / /访问公共财产,在变量名与此。

这个;

};

init();

}
注意事项

根据我的经验,课堂上的这个东西并不总是指向我们的对象本身。主要原因是Javascript不是面向对象语言,函数和类都是由函数定义的。当然,这会引起一些小问题。

这个指针指的是一般情况下的错误处理,我们希望一个对象成员函数响应一个事件,当事件触发时,系统调用这个成员函数,但是,传入的指针不是我们自己的对象,当然,然后调用成员函数,当然,这将出错。

解决方案是在定义类的开头将它保存在私有属性中,然后我们可以使用这个属性而不是这个。

我们修改了代码来解决这个问题。与代码的第六部分相比,您必须理解:

复制代码代码如下所示:

函数形状(斧头,哦)

{

无功_this = / /这本;保存,后来被_this这个更换,所以它不会头晕

变量x=0;

var=0;

_this GX = 0;

_this GY = 0;

函数()

{

x = AX;对私有属性的访问,直接写变量名

y =;

_this。GX = AX; / /访问公共财产,在变量名与此。

_this。戈瑞=是的;

};

init();

}
在上面,我们讨论了如何在Javascript中定义类,创建类的对象,创建公共和私有属性和方法,创建静态属性和方法,模拟构造函数,并讨论容易出错的问题。

Javascript中OOP的实现在这里。以上是最实用的内容。一般来说,Javascript是用来定义类,所以这足以创造出具有上述代码的对象。当然,你也可以使用MooTools或原型定义类和创建对象。我使用mootools框架,我感觉很好,它模拟Javascript类更好,也支持类的继承性。有兴趣的读者可以试试看.当然,如果使用了框架,那么在你的网页中就需要包含JS头文件相关的内容,所以我希望读者能够创建一个类,而不是在框架的情况下使代码的效率高,而且你也可以看到,创建一个简单的类并没有麻烦。

相关文章

PS图象处理软件以时尚大气与流美的

PS图象处理软件以时尚大气与流美的

美的,图象,大气,处理软件,海报,流体效应更为常用。例如,发现以下效果。作者会找到一些动态的人物图片,然后在衣服的边缘添加一些液体,然后添加一些几何图形和黑白背景。时尚的气氛充满紧张气氛。 流体效应更为常用。例如,我们应该找到一个相对…

PS图象处理软件净GIF动态惊艳

PS图象处理软件净GIF动态惊艳

动态,图象,处理软件,惊艳,电脑软件,本教程是GIF动态图片的制作方法到惊人的PS图象处理软件教程制作的效果很漂亮,很简单的方法,这里推荐爱的朋友可以跟着教程一起学习 我经常在网上看到一些动态的图片,他们觉得很刺眼。事实上,只要我们想做,我们…

jQuery实现瀑布流布局

jQuery实现瀑布流布局

瀑布流布局,电脑软件,jQuery,HTML 复制代码代码如下所示: CSS 复制代码代码如下所示: { * 保证金:0; 填充:0; } { #主要 职位:相对; } {。箱 填充物:00 15px 15px; 浮点数:左; } {。PIC 填料:10px; 边境:1px solid # CCC; 边界半径:5…

教你用人工智能制作漂亮而肥胖的字

教你用人工智能制作漂亮而肥胖的字

字体,人工智能,肥胖,教你用,漂亮,本教程是向朋友介绍的,用ai制作漂亮又可爱的胖字体,教程制作的字体非常可爱,难度不是很大,推荐给朋友,希望大家喜欢。 本教程是向朋友介绍使用ai制作漂亮而可爱的胖字体,教程制作的字体非常可爱,难度不是很大,但教…

jQuery实现单击和鼠标感应事件。

jQuery实现单击和鼠标感应事件。

单击,事件,鼠标,感应,电脑软件,1。实现单击事件的动态切换 我们谈到toggleClass()之前。对于单击事件,jQuery还提供了一个动态切换的切换()方法。该方法接受两个参数,这两个参数都是侦听器函数,它们在单击事件中交替使用。 示例:单击事件的动态交…

标志设计技术的图形化描述

标志设计技术的图形化描述

描述,图形化,标志,技术,电脑软件,这是初学者的笔记,对我自己的设计有一定的了解。我希望你能分享你的经验,创造一个更好,更合理的设计。 这是初学者的笔记,对我自己的设计有一定的了解。我希望你能分享你的经验,为你做一个更好更合理的设计。 …

实现jQuery搜索框效果的方法

实现jQuery搜索框效果的方法

方法,搜索,效果,电脑软件,jQuery,本文介绍了实现jQuery搜索框效果的方法,供大家参考,具体的实现方法如下: 复制代码代码如下所示: 搜索框效果 $(函数(){()) $(#搜索)。瓦迩(请输入搜索内容),AddClass(C1); $(#搜索')。焦点(功能)({ / /搜索框获得焦点 $(#搜索)…

人工智能创造一个美丽的浮雕材料课

人工智能创造一个美丽的浮雕材料课

创造,人工智能,浮雕,一个美丽,课程,本教程是介绍一个朋友通过使用AI创建美丽的浮雕材料的方法。本教程制作的材料非常有质感,难度不大。推荐并共同学习。 本教程是向大家介绍ai创建一个漂亮的浮雕素材的方法,效果很好的教程,推荐大家一起看看…

穷举置换(置换)算法的javascript实现

穷举置换(置换)算法的javascript实现

算法,穷举,电脑软件,javascript,令人费解的事 数组中元素的排列 策略 递归的减少和处理 Javascript的解决方案 复制代码代码如下所示: *由cshao 12 / 23 / 14。 * / 功能getpermutation(ARR){ 如果(arr.length = = 1){ {是}返回; } var置换{ }; …

用PS将数码照片转换成黑白照片的处

用PS将数码照片转换成黑白照片的处

照片,处理方法,转换成,数码照片,黑白,本教程介绍PS的处理方法和技能,使数码照片黑白照片。本教程更实用。对于以后的照片朋友来说,是值得学习的。建议你喜欢你的朋友一起学习。 本课程是PS照片处理。学习者介绍将数码照片转换成黑白照片的处…

ai简单快速地制造了一只眼睛

ai简单快速地制造了一只眼睛

一只,眼睛,快速,简单,电脑软件,本教程是介绍给一个朋友,利用人工智能创建一个眼球的方法简单快捷。本教程制作的眼睛非常逼真。方法很简单。像你的朋友一样,让我们一起学习。 本教程简要介绍了一个简单和快速发展的眼球与人工智能。教程很简…

PS图象处理软件卡通火箭图标课程呈

PS图象处理软件卡通火箭图标课程呈

图标,图象,处理软件,火箭,卡通,本教程介绍卡通火箭图标的方法使用PS图象处理软件绘制三维效果。这个教程的效果真的很好,难度也不是很大。建议你喜欢你的朋友一起学习。 本教程主要使用PS图象处理软件绘制立体效果的卡通火箭图标的教程,效果…