自己理解的javascript静态方法和动态实例方法区别

时间:2016-04-17

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


上一条:利用CSS3后代选择器和CSS3伪类制作的无JS的纯CSS选项卡 [ie8+] 下一条:纯javascript通过样式类名获取元素

相关文章

最新文章