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


Posted in Javascript onMarch 24, 2007

作者: 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 风格也可以选择这种写法.

Javascript 相关文章推荐
JS中的构造函数详细解析
Mar 10 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
Feb 23 Javascript
20分钟打造属于你的Bootstrap站点
Jul 27 Javascript
微信JS接口大全
Aug 25 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
Aug 25 Javascript
走进javascript——不起眼的基础,值和分号
Feb 24 Javascript
Angular.Js中ng-include指令的使用与实现
May 07 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
Jun 29 Javascript
JS实现返回上一页并刷新页面的方法分析
Jul 16 Javascript
微信小程序自定义顶部组件customHeader的示例代码
Jun 03 Javascript
浅谈Vue static 静态资源路径 和 style问题
Nov 07 Javascript
javascript实现放大镜功能
Dec 09 Javascript
用js实现的仿sohu博客更换页面风格(简单版)
Mar 22 #Javascript
漂亮的提示信息(带箭头)
Mar 21 #Javascript
自动生成文章摘要的代码[JavaScript 版本]
Mar 20 #Javascript
用roll.js实现的图片自动滚动+鼠标触动的特效
Mar 18 #Javascript
表单提交时自动复制内容到剪贴板的js代码
Mar 16 #Javascript
用javascript自动显示最后更新时间
Mar 15 #Javascript
用js实现预览待上传的本地图片
Mar 15 #Javascript
You might like
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
2010/06/09 PHP
详解EventDispatcher事件分发组件
2016/12/25 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
jquery移动listbox的值原理及代码
2013/05/03 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
2016/12/17 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
python中getattr函数使用方法 getattr实现工厂模式
2014/01/20 Python
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
python实现获取Ip归属地等信息
2016/08/27 Python
Python网络编程 Python套接字编程
2017/09/13 Python
python使用mysql的两种使用方式
2018/03/07 Python
Python Requests库基本用法示例
2018/08/20 Python
python实现根据文件格式分类
2019/10/31 Python
python scatter函数用法实例详解
2020/02/11 Python
公务员培训心得体会
2013/12/28 职场文书
企业诚信承诺书
2014/05/23 职场文书
药店促销活动总结
2014/07/10 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
应聘教师求职信范文
2015/03/20 职场文书
党员电教片《信仰》心得体会
2016/01/15 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android
nginx搭建NFS网络文件系统
2022/04/14 Servers