一直对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>