此篇为JS实现版本,以前作已交待原理故不在此多做解释
如需原理介绍请查看VBS版.
varPermissionType=
{
Read:1,
Write:2,
Delete:4
}
functionPermissionSetComponent(value)
{
this.Value=value;
this.getRead=function()
{
returnthis.getValue(PermissionType.Read);
}
this.setRead=function(value)
{
this.setValue(PermissionType.Read,value);
}
this.Read=function()
{
if(arguments.length>0)
this.setValue(PermissionType.Read,arguments[0]);
else
returnthis.getValue(PermissionType.Read);
}
this.Write=function()
{
if(arguments.length>0)
this.setValue(PermissionType.Write,arguments[0]);
else
returnthis.getValue(PermissionType.Write);
}
this.Delete=function()
{
if(arguments.length>0)
this.setValue(PermissionType.Delete,arguments[0]);
else
returnthis.getValue(PermissionType.Delete);
}
this.getValue=function(permissionType)
{
return(this.Value&permissionType)==permissionType;
}
this.setValue=function(permissionType,value)
{
if(value)
this.Value|=permissionType;
else
this.Value&=~permissionType;
}
}
varPermissionSet=newPermissionSetComponent(0);
w("Read:");
PermissionSet.Read(false);
w(PermissionSet.Value+""+PermissionSet.Read());
PermissionSet.Read(true);
w(PermissionSet.Value+""+PermissionSet.Read());
w("Write:");
PermissionSet.Write(false);
w(PermissionSet.Value+""+PermissionSet.Write());
PermissionSet.Write(true);
w(PermissionSet.Value+""+PermissionSet.Write());
w("Delete:");
PermissionSet.Delete(false);
w(PermissionSet.Value+""+PermissionSet.Delete());
PermissionSet.Delete(true);
w(PermissionSet.Value+""+PermissionSet.Delete());
functionw(o)
{
Response.Write(o+"
");
}
注:红色部分为java风格写法不是本例所必须.
只是做一个展示,如果你比较喜欢java风格也可以选择这种写法.