面向对象,敲程序的应该都知道这个思想,那什么是面向对象?后台的应该比较了解,前端由于在业务开发中不会使用这种思想,应该很多都对面向对象很陌生。借鉴blue老师对面向对象的讲解,在这边我说一下本人对于前端面向对象的理解。
先说一下最经典的面向对象解释,人。一说到面向对象,几乎都会拿人来举例。人有身高、体重、年龄,能吃饭、能说话等。简单来说,身高、体重、年龄就是面向对象思想的属性,吃饭、说话就是面向对象思想的方法。
面向对象的思想,不仅仅适用程序,在很多方面都适用。在这边我就不班门弄斧了,直接进入前端应该理解的面向对象思想。
我们都知道一个JavaScript有构造函数,所谓构造函数就是构造一个实现某个功能的函数。在实现功能的过程中就一定会有方法和属性。JavaScript中面向对象的思想就是一个包含属性和方法的构造函数。
比如这样一个方法
function fn() {
this.name = 'wade';
this.getName = function () {
alert(this.name);
}
}
var fn = new fn();
复制代码
这是最简单的面向对象,属性就是name,方法就是getName。
面向对象就像一个黑盒子,就像一个库,我们不知道里面的构造,但是我们会使用对外的方法和属性。比如电视,我们不知道里面是怎么运行的,但是我们知道怎么开机,怎么换台,我们可以看见画面,可以听见声音。声音画面就是属性,开机换台就是方法。
JavaScript的面向对象思想就是这么简单,封装一个构造函数,函数里面有属性和方法,然后把一些属性和方法暴露出去,让外部的可以调用。在业务开发中我们或许用不到,但是真正大型项目或者是编写一些库的时候,面向对象思想是一定要用的。
比如JavaScript插件一哥jQuery,就是一个典型的面向对象库。我们知道怎么使用jQuery的属性和方法,但是我们不知道内部是怎么封装的。
至于如何使用面向对象思想开发,这就不是本人现在能解释的了,还是需要继续努力。
欢迎关注Coding个人笔记 公众号