JavaScript中的静态成员

静态:共享

一、公有静态成员(作为函数的属性即可):

 1 var Gadget = function(price) {
 2     this.price = price;
 3 }
 4 Gadget.isShiny = function(){
 5     var msg = 'you bet';//公有静态
 6     if(this instanceof Gadget){//实例调用时
 7         msg += ', it costs ' + this.price + '!';
 8     }
 9     return msg;
10 }
11 Gadget.prototype.isShiny = function(){
12     return Gadget.isShiny.call(this)
13 }
14 
15 console.log(Gadget.isShiny());//you bet  此为静态调用
16 var a = new Gadget(23);
17 console.log(a.isShiny());//you bet, it costs 23!   此为实例调用

二、私有静态成员:

  私有:构造函数外部不可访问

  静态:所有实例共享

通过即时函数创建作用域存放

 1 var Person;
 2 (function(){
 3     var id = 0;//私有
 4     Person = function(){
 5         id ++;
 6         this.id = id;
 7     }
 8     Person.prototype.getId = function(){
 9         console.log(this.id);
10     }
11     Person.prototype.getLastId = function(){
12         console.log(id);
13     }
14 
15 })();
16 
17 
18 var p1 = new Person();
19 p1.getLastId();//1
20 p1.getId();//1
21 
22 var p2 = new Person();
23 p2.getLastId();//2
24 p2.getId()//2
25 
26 var p3 = new Person();
27 p3.getLastId();//3
28 p3.getId();//3
29 
30 
31 p1.getId();//1
32 p2.getId();//2
33 p3.getId();//3

 

 

注:JavaScript设计 P108-111 略变

转载于:https://www.cnblogs.com/redking-fighting/p/6250408.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值