1. 程式人生 > >自己理解的javascript靜態方法和動態例項方法區別

自己理解的javascript靜態方法和動態例項方法區別

一直對javascript物件的概念不清楚,物件裡面的什麼靜態方法、例項方法就更暈了。今天稍微有空再次看了一下關於javascript物件方面的知識,把自己理解的記錄以下,主要是兩種方法的區別。方便後面可能能用上。

靜態方法和例項方法的宣告形式不同

兩種方法的宣告形式如:

<script>
function user(a, n){
    this.a = a||'年齡';
    this.n = n||'名字';
}
//宣告靜態變數
user.sayname = function(){
    alert(this.name);
}
//宣告動態變數
user.prototype.sayname2 = function(){
    alert(this.name);
}
</script>

靜態方法和例項方法呼叫不同

靜態方法聲明後,就可以直接使用建構函式名來呼叫,而動態方法呼叫則需要例項化來引用,這個比較好理解例項方法肯定要例項化才能引用

還是上面的例子

<script>
function user(a, n){
    this.a = a||'年齡';
    this.n = n||'名字';
}
//宣告靜態變數
user.sayname = function(){
    alert(this.a);//這裡彈出的是“undefined”,找了半天不知道是為什麼,望高手指點。
}
//這裡宣告靜態變數後,就可以立即使用了
user.sayname();
//宣告動態變數
user.prototype.sayname2 = function(){
    alert(this.a);
}
//而例項方法需要例項化來引用
var o = new user();
o.sayname2();
</script>