1. 程式人生 > >js中期知識點總結11月2日 原型鏈

js中期知識點總結11月2日 原型鏈

原型鏈

  每個元素的事件都是天然存在的,不能給元素繫結事件,可以給元素繫結事件的方法,

  1.面對物件的由來

  js一開始就是寫網頁特效,面向過程,作者發現這樣寫不好,程式碼的重複利用率太高,計算機記憶體消耗大,網頁效能很差,所以作者受到java和c的影響,往面向物件靠齊,js天生有一個object。但他沒有面對物件的特徵(封裝,繼承,多型)最後研究出了建構函式

  建構函式最終的目的(生成物件)

  我們把封裝的那個函式叫類,

  類裡面的屬性是私有的,

  類原型上的屬性是公有的,可繼承的。

  原型分析

  1.類(建構函式)身上天生自帶一個prototype的屬性,屬性值是物件。

  2.prototype物件天生一個constructor的屬性,屬性值就是類本身。

  3.實列天生有一個__proto__的屬性,屬性值指向類的原型。

  原型鏈圖:

  

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

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

  

  var a 與 a的區別?

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

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

 

  每個元素的事件都是天然存在的,不能給元素繫結事件,可以給元素繫結事件的方法,

  1.面對物件的由來

  js一開始就是寫網頁特效,面向過程,作者發現這樣寫不好,程式碼的重複利用率太高,計算機記憶體消耗大,網頁效能很差,所以作者受到java和c的影響,往面向物件靠齊,js天生有一個object。但他沒有面對物件的特徵(封裝,繼承,多型)最後研究出了建構函式

  建構函式最終的目的(生成物件)

  我們把封裝的那個函式叫類,

  類裡面的屬性是私有的,

  類原型上的屬性是公有的,可繼承的。

  原型分析

  1.類(建構函式)身上天生自帶一個prototype的屬性,屬性值是物件。

  2.prototype物件天生一個constructor的屬性,屬性值就是類本身。

  3.實列天生有一個__proto__的屬性,屬性值指向類的原型。

  原型鏈圖:

  

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

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

  

  var a 與 a的區別?

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

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