假:why?什么是面向对象编程?
义:应该是某个人和她的对象面对面吧。
丁:错!如果从简单的一面来看,就是用一个对象把所有的变量和方法包含起来。
var obj = { name:"追梦子", age:19, fn:function(){ console.log(this.name + " : " + this.age); } } obj.fn(); //追梦子 : 19
当然实际情况可能会比这麻烦,但是在怎么麻烦也只是多了一些属性,多了一些方法,仅此而已,面向对象编程没有你想象的那么难,难在编程的思维。
为什么要学习面向对象编程?
因为代码的复用性强,并且因为这些变量都包含在了一个对象中,这些变量不会破坏外面的环境,当然光从上面的这段代码并看不怎么出来面向对象的优点,下面在举几个例子。
function Fn(num,user){ this.num = num; this.user = user; this.fn = function(){ console.log(this.user+" : "+this.num); } } var createFn1 = new Fn(11,"小李"); createFn1.fn(); //小李 : 11 var createFn2 = new Fn(22,"老李"); createFn2.fn(); //老李 : 22
这样我们只通过创建一个函数,多个对象都可以使用,如果你不知道new运算符你可以看一下call方法和new对象的关系,__proto__与prototype这两篇文章,这篇文章讲解的并不是特别的深入,第一这篇文章本来就是简单的讲解一下面向对象编程的原理,第二前面的几篇文章有说过一下这方面的概念,第三我本人也还是刚刚接触面向对象编程,没有办法太过深入的讲解。
面向对象原型学习笔记》模拟数组的几个小功能,这篇文章的代码类似于面向对象编程。