自己理解的javascript靜態方法和動態例項方法區別
阿新 • • 發佈:2019-02-16
一直對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>