您好,欢迎访问一九零五行业门户网

基于逻辑运算的简单权限系统(实现) JS 版_javascript技巧

作者: 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 +
);
}
注: 红色部分为 java 风格写法 不是本例所必须.
只是做一个展示, 如果你比较喜欢 java 风格也可以选择这种写法.
其它类似信息

推荐信息