function a() //如上,在建構函式外用函式名定義的屬性或者方法,可以也只可以通過函式名來訪問,這和c++基本一樣。在建構函式外定義的都是所有物件共享的
a.id = "
我是a"
;a.sayid =function()
a.sayid();
輸出
試圖訪問非靜態變數時
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 它們都是在程式編譯連線階段確定的,在程式執行的階段不會改變。動態儲存區分為堆和棧。都是程式執行的過程中動態分配的,...