自己理解的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>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值