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