理解:什麼是構造函數?什麼是 this 指向?小箭頭函數?

現在好多人的基礎不咋的,包括我在內哈哈,得多多學習,多多看書,其實小紅書寫的是真好,可惜沒多少人真的看進去理解子 。。。。

什麼是構造函數呢?

構造函數其實就是普通的函數,就是調用的方法不同,通常都是首字母大寫,用到 new 。

構造函數的一個問題就是:每次都重新在實例上重新創建一次。。

什麼情況下會使用到構造函數呢?

在生成數組的情況下會使用到,es6 中的 class 其實就是構造函數的語法糖。構造函數 Array 來說,我們隨便創建一個函數A,然後 new A(),那麼這個對象的構造函數就是 A。是不是很簡單?

什麼情況下會使用到 this 呢?

this 的話一般分好幾種情況,最簡單的就是就近原理,指向當前對象。

如果是函數中的話 this 指向的是 window 。

如果是 方法調用的話,這個 this 誰調用這個方法誰就是 this 。

構造函數調用,this 就是指的當前對象。對象上面有屬性和方法,如果某個函數中調用這個屬性或者方法,那麼就用到 this。

es6 中小箭頭函數的理解?

es6 中的小箭頭函數中是沒有 this ,也沒有 prototype,也沒有 argument super() 。當然也不能用構造函數、call 或者 apply 。

小箭頭函數中 call 或者 apply 是無法使用的,沒辦法改變當前的作用域。

小箭頭函數中 this 一旦定義是無法改變的。

new 的話會改變 this 的指向的。

這裏扯到一個 call 和 apply 的區別?

一句話的理解:call 可以接收多少參數,apply 只能接收兩個參數。

構造函數的流程是啥呢?

1、創建一個構造函數。

2、將新的對象設置函數的 this 。這裏的this 用作新對象。

3、逐行的執行函數。

4、將新建的對象做爲返回值。

順便講一波 function ?

每個函數都是對象,每個對象都有屬性和方法。

屬性裏面有:length、prototype。

方法裏面有:call、apply。

函數的內部屬性有:argument、this(內部屬性)。

如何創建立一個構造函數呢?

寫個 demo :

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章