JavaScript静态类详解

静态类,有很多特性。如不能有构造器、不能被继承、仅包含静态成员等,但是有一个我认为是最重要的特性,那就是不能实例化,也就是不能通过new创建出实例。JavaScript静态类当然也有这个特性,我们就从这个出发点来谈谈JavaScript的静态类。
首先来看下面代码段:


var People = {
    name : "Tan Lian",
    eat: function(){
        alert("Hello, I am eating.");
    }
};

People就是一个静态类。很多人可能会产生疑问了:这是静态类吗?这连类都不是吧?我很高兴大家能够提出这种疑问,这种在学习的过程中带着质疑的态度是极好的,说明你在认真思考;但是同时也说明大家的思想深深的被以前的知识给局限了。好了,废话不多说,这也是一种类,这是一种用极简主义法定义的类,这种思想是由荷兰程序员Gabor de Mooij提出的。我们可以通过People.name来访问name属性,通过People.eat()来运行eat方法。
在这里,People既是一个对象,也是一个类,只是这个类不能被实例化而已。这样定义类就有点类似于json对象格式,也类似于Python的字典。那么知道这些有什么用呢?没啥鸟用^_^,知道People是个对象就足够了。
来看定义静态类的第二种形式:

        var People = (function(){
           alert("Hello");
        var age = 23;  //私有属性
        var eat = function(){ //私有方法
        alert("Hello, I am eating.");
        } 
           return {
               get_age : "You are" + age + "years old.", //公有属性
               eat_wrap : function(){   //公有方法
                   eat(); 
               }
           }
           })();

第一次见到这样的代码可能读者有点晕,(我第一次见到的时候就是这样^_^),不急,我们慢慢将其拆解。查看全文

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值