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