【 tulaoshi.com - Web开发 】
                             
                            作者: slightboy, 时间: 2006-10-17 
此篇为 JS 实现版本, 以前作已交待原理 故不在此多做解释 
如需原理介绍 请查看 VBS 版. 
var PermissionType = 
{ 
    Read : 1, 
    Write : 2, 
    Delete : 4 
} 
function PermissionSetComponent(value) 
{ 
    this.Value = value; 
    this.getRead = function() 
    { 
        return this.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 
            return this.getValue(PermissionType.Read); 
    } 
    this.Write = function() 
    { 
        if (arguments.length  0) 
            this.setValue(PermissionType.Write, arguments[0]); 
        else 
            return this.getValue(PermissionType.Write); 
    } 
    this.Delete = function() 
    { 
        if (arguments.length  0) 
            this.setValue(PermissionType.Delete, arguments[0]); 
        else 
            return this.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; 
    } 
} 
var PermissionSet = new PermissionSetComponent(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()); 
function w(o) 
{ 
    Response.Write(o +"br /"); 
} 
注: 红色部分为 java 风格写法 不是本例所必须. 
只是做一个展示, 如果你比较喜欢 java 风格也可以选择这种写法.