假: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这两篇文章,这篇文章讲解的并不是特别的深入,第一这篇文章本来就是简单的讲解一下面向对象编程的原理,第二前面的几篇文章有说过一下这方面的概念,第三我本人也还是刚刚接触面向对象编程,没有办法太过深入的讲解。

  面向对象原型学习笔记》模拟数组的几个小功能,这篇文章的代码类似于面向对象编程。