假:why?什麼是面向對象編程?html
義:應該是某我的和她的對象面對面吧。編程
丁:錯!若是從簡單的一面來看,就是用一個對象把全部的變量和方法包含起來。數組
var obj = { name:"追夢子", age:19, fn:function(){ console.log(this.name + " : " + this.age); } } obj.fn(); //追夢子 : 19
固然實際狀況可能會比這麻煩,可是在怎麼麻煩也只是多了一些屬性,多了一些方法,僅此而已,面向對象編程沒有你想象的那麼難,難在編程的思惟。函數
爲何要學習面向對象編程?學習
由於代碼的複用性強,而且由於這些變量都包含在了一個對象中,這些變量不會破壞外面的環境,固然光從上面的這段代碼並看不怎麼出來面向對象的優勢,下面在舉幾個例子。this
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這兩篇文章,這篇文章講解的並非特別的深刻,第一這篇文章原本就是簡單的講解一下面向對象編程的原理,第二前面的幾篇文章有說過一下這方面的概念,第三我本人也仍是剛剛接觸面向對象編程,沒有辦法太過深刻的講解。spa
面向對象原型學習筆記》模擬數組的幾個小功能,這篇文章的代碼相似於面向對象編程。prototype