多语言展示
当前在线:152今日阅读:75今日分享:44

快速掌握JavaScript面向对象一(构建一个对象)

做前端开发的人想必都避不开JavaScript这一道砍,无论使用怎么样的前端框架,JavaScript就如同一个幽灵一样,始终伴随在我们身边。我们都知道JavaScript和编程语言最大的区别就是他是没有编译这种功能的,这就是一个解释执行的语言,那么,这个解释执行的语言之中,所谓的原型和面向对象说的又是什么呢?今天就由我给大家带来js面向对象的学习和探索。
工具/原料
1

html

2

能够进去开发者模式的浏览器

方法/步骤
1

首先,我们来说一下最简单也是最轻松的建立一个js对象的方法,对,就是用我们的var来定义我们所需要的object,而关于这个object内部需要的属性,则需要通过box.name这样的功能来实现。函数的方法也是由box.run = function(){}这样的赋值方式来实现,这一部分看上去和普通的面向对象没啥区别对吧。

2

才怪!如果你真的认为这个就是面向对象,那么我建议读者您应该擦亮眼睛,仔细看一下我们的定义。没错,我们定义的是一个var  而不是面向对象的什么public 那种修饰符,var那是什么,那是和int一样的属性,也就是说我们定义的就是一个变量,根本就不是一个对象!下图为我们尝试着通过引用box1的方式构造box2,结果发现我们调用的其实还是box的实例,不得不重新建一个object。

3

显然这个根本不能叫做JavaScript的面向对象,所以接下来我向大家介绍一下真正能面向对象的俩个模式,即工厂模式和构造函数模式。后者想必大家都比较了解,所以我们先来说下工厂模式:

4

工厂工厂,就是可以批量生产,而不是像前面box1 box2那样傻乎乎的一个个单独生成一个var变量。如下图,我们可以通过在函数内构造出我们的var,然后通过return的方式来解决批量生产的问题,但是相信看完后的你还是一脸茫然。。。我靠,这不就是把前面那个繁琐的重写一遍的过程写成了个函数而已么,这叫个屁的工厂模式啊。。。对的,我看完之后也是这么想的233而且这个模式根本没做到面向对象。。。和前面一个样子,建了一个实例,鬼才知道这个实例是属于那个对象的。。。

5

最好用的到最后还是数我们最典型的面向对象的方法,我们可以看到,唯一的区别就是本来的public class的声明变成了普通的function,而内部所有的属性包括函数都必须加上this.的符号,还有就是在下面构造的时候需要使用new来新构建这个实例。

6

下面我要说明一下这个构造,他与工厂最大的不同就是他没有return,而是this,他的object实在new 一个新的实例的时候,自动后台调用的new object()而且构造函数本身也是函数,他确实是可以进行普通调用的,只是无法再形成一个实例罢了,值得注意的是,即使我们使用函数为this.run = run,而run()函数在这个构造函数之外定义,也是可以的。ok,JavaScript的面向对象就和大家介绍到这里了,毫无疑问,由java本体生出的面向对象的程序设计还是最好用的,是不是很简单呢。

注意事项
1

工厂适合简单实用,构造函数需要类关系在运用类的详细方法才会用到

2

构造函数方法时,下面的新建对象需要使用new关键字

推荐信息