浅谈面向对象类中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头文件相关的内容,所以我希望读者能够创建一个类,而不是在框架的情况下使代码的效率高,而且你也可以看到,创建一个简单的类并没有麻烦。

tag:面向对象浅谈类中电脑软件Javascript

相关内容