JS靜態變數和靜態函式

2022-07-01 05:21:11 字數 1115 閱讀 7829

function a()            //

在建構函式外定義的都是所有物件共享的

a.id = "

我是a"

;a.sayid =function()

a.sayid();

如上,在建構函式外用函式名定義的屬性或者方法,可以也只可以通過函式名來訪問,這和c++基本一樣。

輸出

試圖訪問非靜態變數時

function a()            //

在建構函式外定義的都是所有物件共享的

a.id = "

我是a"

;a.sayname = function()

a.sayname();

輸出

說明訪問不了。

再看看this是什麼

那麼如果用prototype呢?

function a()            //

在建構函式外定義的都是所有物件共享的

a.prototype.id = "

我是a"

;a.prototype.sayname = function()

a = new

a();

a.sayname();

輸出

說明:1、輸出"我是aa"是因為"我是a"是在之後賦值的,把"我是a"覆蓋了。

2、prototype指向的是乙個object物件,注意它是乙個物件,當使用prototype時(或者是定義函式後),會產生乙個object物件,等同於 object = new object();

3、通過prototype新增的屬性和方法不是靜態的,只能通過物件來訪問。

靜態變數和靜態函式

靜態變數 靜態變數使用 static 修飾符進行宣告 在所屬類被裝載時建立 通過類進行訪問 所屬類的所有例項的同一靜態變數都是同乙個值 非靜態變數 不帶有 static 修飾符宣告的變數稱做非靜態變數 在類被例項化時建立 通過物件進行訪問 同乙個類的不同例項的同一非靜態變數可以是不同的值 在c 中,...

靜態函式和靜態變數

記憶體大致可以劃分為 棧區堆區 全域性 靜態區 常量區 區 其中棧區位於高位址,區位於低位址。區 存放程式 段 常量區 存放各種常量 數值常量和字串常量等 全域性 靜態區 存放全域性變數和靜態變數,未初始化的和初始化的分開存放 堆區 使用new就是在該區申請 棧區 存放區域性變數等 a.件 clas...

c c 靜態變數和靜態函式

c語言中需要記憶體來存放資料。而記憶體主要分為兩類 靜態儲存區和動態儲存區 靜態儲存區分為 唯讀資料 readonly data 區 以讀寫資料 rw data 區 未初始化區 bss 它們都是在程式編譯連線階段確定的,在程式執行的階段不會改變。動態儲存區分為堆和棧。都是程式執行的過程中動態分配的,...