其实通俗的讲类就是对象的模板,为了增强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() //公用方法可以访问
以上就是javascript中什么是私有成员、受保护成员、静态成员实例分析的详细内容。