Javascript类定义语法,私有成员、受保护成员、静态成员等

 JS只是一门支持面向对象编程的语言,通过OO可以让我们的代码组织更加人性化。可是与传统基与类的面向对编程语言不同它没有类概念并且没成员访问修饰符。这多少会给我们编程工作会带来一些束缚。

    其实通俗的讲类就是对象的模板,为了增强JS的OO特性,受mootoos框架启发我们可以使用一个JSON对象来描述这个对象的模板。在这个模板中我们可以模拟实现私有成员,受保护成员,静态成员。

    这是一个在JS中模拟的类定义语法,代码中Class是一个自定义函数,它接受两个参数,第一个参数是类名、第二个参数是一个JSON用来一个对象的模板。在这个JSON对象中其中字段 "extend",,"initialize","static" 为一些预定义关键字,所表示的意义与基于类的传统OO语言相似。字段accessabe用来描述一个对象成员的可访问性,取值为("private","protected","public")在Class函数中会对这些关键字进行特殊处理,使其所修饰的成员具有相应的访问权限。

Class("Person" ,{ 

     //继承 

     extend: Animal,

     //构造函数

     initialize:function(name,sex){

         this.name = name;

         this.sex = sex;

         Person.count++;

     }, 

     //静态成员

     static:{

        count: {

            accessabe:"private",

            value: ""

        }

     }, 

    //实例成员  

    age: {//私有属性成员

        accessabe:"private", 

        value:0

    },

    //公用属性

    name: {

        accessabe:"public",

        value:""

    },

    sex:{

        accessabe:"public",

        value: ""

    },  

    //方法

    sleep: {//受保护方法 

         accessabe:"protected",  

         value: function(){ 

          

         }

     }, 

     say: {//公用方法   

         accessabe:"public", 

         value: function(){ 

            retun (this.age-1)

         }

     }

});

 

//调用

var xiaom = new Person("小明","男");

xiaom.age //私有属性不能访问

xiaom.sleep() //受保护方法不能访问

 

xiaom.say() //公用方法可以访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值