恩……..這道題,我們來看一下,首先得明白,什麼是靜態變數,什麼是例項變數!
看下面這個**
class demo1
}
這個demo裡的a 就是靜態變數,b就是例項變數,
我們在呼叫靜態變數的時候,可以直接使用類名.靜態物件名來呼叫 ,比如
demo1.a
而例項物件使用的時候是通過 new demo().b 來呼叫的!
我們再來看這道面試題!
靜態變數不屬於某個例項物件,而是屬於類,也叫類變數,只要程式載入了類的位元組碼,不用建立任何例項物件就會被分配空間,就可以被使用,也就是說,你建立了多個物件,他們共用了乙個靜態變數,而例項物件是屬於自己的獨有的,不會被共享!
可以看看下面的**演示
public
class test
}class demo1
}
最後的結果為
可以看出來 靜態變數是公共的,而例項物件,是自己用自己的!
一道面試題 變數宣告提公升
問列印結果 var getname function function getname console.log getname 結果是 4 其實這道題可以翻譯成 var getname function getname getname function console.log getname 4 把...
靜態變數和例項變數
在語法定義上的區別 靜態變數前要加static關鍵字,而例項變數前則不加。在程式執行時的區別 例項變數屬於某個物件的屬性,必須建立了例項物件,其中的例項變數才會被分配空間,才能使用這個例項變數。靜態變數不屬於某個例項物件,而是屬於類,所以也稱為類變數,只要程式載入了類的位元組碼,不用建立任何例項物件...
一道js變數上浮面試題
function a b log a a 輸出結果 下一行,拖動或ctrl a 輸出 1 解析 昨天去面試,就掉到上浮的坑里,本來是知道這個問題的,但是不太熟練又被迷惑。最後面試官給我說,變數上浮,是在定義的時候產生的,執行時不存在這個問題。來看這個題,a 函式 可以重新這樣寫 function a...