在javascript中,直接定義在建構函式上的方法和屬性是靜態的, 定義在建構函式的原型和實例上的方法和屬性是非靜態的。靜態方法主要用於操作靜態屬性,可以用「類別名稱.屬性=function(){}」來定義。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
function ClassA(){ //定义构造函数 }; ClassA.func = function(){ //在构造函数上添加一个属性(因为函数也是对象) console.log("This is a static method"); } var instance = new ClassA(); //新建一个实例 ClassA.func(); //This is a static method instance.func(); //Error:instance.func is not a function
當定義一個函數後透過「.」為其新增的屬性和函數,透過物件本身仍然可以存取得到,但是其實例卻存取不到,這樣的變數和函數分別被稱為靜態變數和靜態函數。
function Obj(){ } Obj.a=0; //静态变量 Obj.fn=function(){ //静态函数 } console.log(Obj.a); //0 console.log(typeof Obj.fn); //function var o=new Obj(); console.log(o.a); //undefined console.log(typeof o.fn); //undefined
靜態方法不能被實例物件呼叫,實例方法不能被建構物件呼叫。
推薦學習:javascript影片教學
#以上是JavaScript如何定義靜態方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!