置頂 步步辨析JS中的物件成員

2021-09-09 04:09:30 字數 1140 閱讀 4016

首先我們應該明白建立乙個js物件的具體例項是例項化的過程,而例項化是通過new關鍵字實現的,這個物件是含有constructor的,一般的核心物件都會具有constructor以便建立其實例。因此,如果要對我們自己建立的js物件進行例項化的話,則這個物件必須具有constructor。

建構函式的基本架構為:

function myconstructor(a)
js中的靜態成員是通過點操作符新增到物件例項中,並且只存在於物件的乙個具體例項,不存在於建構函式中,因此通過new關鍵字建立的物件例項不具有原物件的靜態成員。

新增物件靜態成員的小例:

靜態成員只存在於物件的乙個具體例項,不存在於建構函式中的例項:

能夠使例項化的物件包含的成員稱為公有成員,新增公有成員有兩種方法:在建構函式中用this關鍵字新增公有屬性或公有方法(特權成員);另外一種方法便是修改函式原型,即prototype屬性

新增物件公有成員的小例:

例項中也正說明了當修改乙個物件的原型時,任何繼承該物件的物件和已經存在的所有例項都會繼承同樣的變化。而需要提及一點的是,公有成員只能在被例項化的例項中可用,而在建構函式自身中是無效的。

在建構函式中定義的變數和函式成為私有成員,私有成員只有在建構函式中才能訪問,因此在例項化執行建構函式的過程中,將訪問其成員。

新增私有成員的小例:

特權成員也屬於公有成員的一類,之前已有提及:在建構函式中用this關鍵字新增的公有屬性或公有方法。根據其特殊的名稱,其特殊的權利在於:與在prototype定義的公有成員不同,由於其是在建構函式中定義的,因此特權成員可以訪問私有成員。在此將不予舉例。

根據靜態成員的定義方法可知,其與prototype是同級的屬性,可以被繼承的成員在prototype之下,據此可知,靜態成員只適用於物件的乙個具體例項。

公有的prototype成員是物件藍圖的一部分,適用於通過new關鍵字例項化該物件的每乙個例項。

私有和特權成員的相同之處在於,它們都在建構函式內部,會帶到建構函式的每乙個例項中,會占用大量記憶體。

在合適的場合應用合適的成員,將使我們的程式更加優化。

JS中的例項成員和靜態成員

1.例項成員就是建構函式內部通過this新增的成員 例項成員只能通過例項化的物件進行訪問 2.靜態成員是在 建構函式本身上新增的成員 靜態成員只能通過建構函式訪問 不能通過物件訪問 function star uname,var ldh newstar 劉德華 男 1.例項成員就是建構函式內部通過t...

js中的物件

1 什麼是物件 具有一組屬性和方法的乙個例項被稱為物件 1 屬性 物件具有的屬性 2 方法 物件具有的功能 2 宣告陣列的方法 方法1 通過new關鍵字來例項化 new關鍵字可以省略 例 var obj new object 或 var obj object 方法2 通過字面量來例項化 給物件新增屬...

js中的this物件

this物件是執行時基於函式的執行環境繫結的 在全域性函式中 this等於window 當函式作為某個物件的方法呼叫時,this等於那個物件,不過匿名函式的執行環境具有全域性性,因此this物件通常指向window。var name the window var object alert objec...