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


也想出现在这里?联系我们
一直对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>


特别声明:以上内容(如有图片或视频亦包括在内)为本平台用户上传并发布,本平台仅提供信息存储服务。

开通vip