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

  其实通俗的讲类就是对象的模板,为了增强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() //公用方法可以访问