啥也不說了,直接上代碼。。。(就是這么任性)
var Animal =
function(){};
Animal.name = "dog";
var a = new Animal();
Animal.name = "dog";
var a = new Animal();
console.log(a.name);
結果如圖 :
很明顯這樣調用是不可以的,那如果console.log(Animal.name)這樣呢?
var Animal =
function(){
Animal.name++;
};
Animal.name = 0;
// var a = new Animal();
Animal.name++;
};
Animal.name = 0;
// var a = new Animal();
console.log(Animal.name);
靜態方法是指不需要聲明類的實例就可以使用的方法
納尼?結果是這樣了滴。。。。。為毛?
那這樣呢?
function Animal (){
// alert(Animal.name);
this.say = function(){
console.log(Animal.name);
}
};
Animal.name = "Ev2le0";
var a = new Animal();
// alert(Animal.name);
this.say = function(){
console.log(Animal.name);
}
};
Animal.name = "Ev2le0";
var a = new Animal();
a.say();
結果是:
納尼,哭暈在wc了。。。
算了還是寫靜態方法吧
function staticClass(){};
//
聲明一個類
// 為這個類添加一個靜態方法
staticClass.staticMethod = function(){
console.log("this is a static method");
}
// 聲明一個實例方法
staticClass.prototype.instanceMethod = function(){
console.log("this is a instance method");
}
// 嘗試調用一下靜態方法,分別使用2種方式
var a = new staticClass();
// 為這個類添加一個靜態方法
staticClass.staticMethod = function(){
console.log("this is a static method");
}
// 聲明一個實例方法
staticClass.prototype.instanceMethod = function(){
console.log("this is a instance method");
}
// 嘗試調用一下靜態方法,分別使用2種方式
var a = new staticClass();
a.staticMethod();
結果是這樣滴:
再試一下類名.方法名的調用方式
function staticClass(){};
//
聲明一個類
// 為這個類添加一個靜態方法
staticClass.staticMethod = function(){
console.log("this is a static method");
}
// 聲明一個實例方法
staticClass.prototype.instanceMethod = function(){
console.log("this is a instance method");
}
// 嘗試調用一下靜態方法,分別使用2種方式
var a = new staticClass();
// a.staticMethod();
// 為這個類添加一個靜態方法
staticClass.staticMethod = function(){
console.log("this is a static method");
}
// 聲明一個實例方法
staticClass.prototype.instanceMethod = function(){
console.log("this is a instance method");
}
// 嘗試調用一下靜態方法,分別使用2種方式
var a = new staticClass();
// a.staticMethod();
staticClass.staticMethod();
結果是這樣子滴:
那調用實例方法能不能用類名.方法名()的形式呢?
function staticClass(){};
//
聲明一個類
// 為這個類添加一個靜態方法
staticClass.staticMethod = function(){
console.log("this is a static method");
}
// 聲明一個實例方法
staticClass.prototype.instanceMethod = function(){
console.log("this is a instance method");
}
// 嘗試調用一下靜態方法,分別使用2種方式
var a = new staticClass();
// a.staticMethod();
// 為這個類添加一個靜態方法
staticClass.staticMethod = function(){
console.log("this is a static method");
}
// 聲明一個實例方法
staticClass.prototype.instanceMethod = function(){
console.log("this is a instance method");
}
// 嘗試調用一下靜態方法,分別使用2種方式
var a = new staticClass();
// a.staticMethod();
staticClass.instanceMethod();
結果是這樣子滴:
總結:
1,對於靜態方法可以使用類名.方法名()
2,實例方法就只能老老實實的使用對象.方法名()的形式調用了。