1. 程式人生 > >從零開始的全棧工程師——js篇2.12(面向物件)

從零開始的全棧工程師——js篇2.12(面向物件)

面向物件

Js一開始就是寫網頁特效,面向過程的,作者發現這樣寫不好,程式碼重複利用率太高,計算機記憶體消耗太大,網頁效能很差。

所以作者就收到java和c的影響,往面向物件靠齊。Js天生有一個Object,但他沒有面向物件的特徵(封裝,繼承,多型)。

最後研究出了建構函式。

建構函式最終目的是生成物件
我們把封裝的那個函式叫 類
類裡面的屬性是私有的
類原型上的屬性是公有的 可以繼承
1)首先類身上天生自帶一個prototype的屬性 屬性值是物件
2)prototype 物件天生有一個constructor屬性 屬性值是類本身
3)例項天生有一個__proto__指向自己類的原型

原型鏈主要針對物件的屬性來說的↑ ↑ ↑

作用域鏈主要針對變數來說的↓ ↓ ↓

var a和a的區別

沒有帶var的變數就不能存放到記憶體地址中。就沒有變數提升這種說法了。相當於給window加了一個屬性window.a。

帶var 可以存放在記憶體地址中,有變數提升,同時也相當於給window加了一個屬性window.a