玩轉JavaScript,你得有很紮實的基礎,這些基礎體如今哪裏?其中一個最重要的點就是對JavaScript的屬性和方法有足夠的瞭解和認識。這裏,我會帶你們一塊兒來完全消滅這些盲點(對JavaScript屬性和方法的分類還存在模糊的印象)。函數
首先來講一下屬性:this
在JavaScript中屬性有四種類型:私有屬性,原型屬性,實例屬性,類屬性。3d
對於這四種屬性的區別和使用,下面,我經過一個代碼來說一下。對象
上面這段代碼中四個變量:x是私有屬性,z是實例屬性,y是類屬性,m是原型屬性。blog
接着來看一下屬性的訪問有何差異。ip
結果好理解,須要注意幾點:一、私有變量只能在函數內使用。二、當實例屬性和原型屬性擁有相同變量時,先會訪問實例屬性,沒有實例屬性就會訪問原型屬性。三、如上面代碼中變量y,只能類才能訪問類屬性,實例不能訪問。原型
這麼一搞,對屬性多少就有了一個更完整的理解和印象了。接下來看一下方法就更好理解了。基礎
來看一下方法:(靜態方法,實例方法,內部方法)變量
1、靜態方法(不能被實例對象調用)構造函數
上面f1就是定義了一個靜態方法,實例沒法訪問。
2、實例方法(注意訪問優先級)
在JavaScript中定義一個實例方法的方式有三種:構造函數中使用this,直接綁定在實例上,綁定在原型上。下面就經過一段代碼來看一下。
上面這段代碼展現了三種方式定義實例方法。執行順序實例上綁定的優先級高於this上綁定的,this上綁定的高於原型上綁定的實例方法。
3、內部方法(只能內部調用)
上面這段代碼定義了兩個內部方法method1和method2。由運行結果可知,內部方法method1和method2只能在函數內部調用,外部經過實例對象沒法找到該方法。
最後總結一下:
經過這篇文章,咱們知道了屬性的定義,屬性分私有屬性,原型屬性,實例屬性,類屬性,這四種,它們各自是怎麼定義,及訪問原則。同時咱們也知道了方法的定義,方法分靜態方法,實例方法,內部方法三種,主要注意一下它們的調用,及實例方法的三種建立形式。