基于逻辑运算的简单权限系统(实现) 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 相关文章推荐
页面只能打开一次Cooike如何实现
Dec 04 Javascript
使用闭包对setTimeout进行简单封装避免出错
Jul 10 Javascript
jquery mobile事件多次绑定示例代码
Sep 13 Javascript
Node.js(安装,启动,测试)
Jun 09 Javascript
jQuery实现表格行上移下移和置顶的方法
May 22 Javascript
coffeescript使用的方式汇总
Aug 05 Javascript
js 获取本地文件及目录的方法(推荐)
Nov 10 Javascript
JavaScript实现省市县三级级联特效
May 16 Javascript
浅析JavaScript中的特殊数据类型
Dec 15 Javascript
微信小程序textarea层级过高的解决方法
Mar 04 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
Apr 30 Javascript
vue 地图可视化 maptalks 篇实例代码详解
May 21 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
apache rewrite_module模块使用教程
2008/01/10 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
javascript 全等号运算符使用说明
2010/05/31 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
js实现简单的购物车有图有代码
2014/05/26 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
基于Vue.js 2.0实现百度搜索框效果
2020/12/28 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
Python实现淘宝秒杀功能的示例代码
2021/01/19 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
利用 CSS3 实现的无缝轮播功能代码
2017/09/25 HTML / CSS
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
戴尔荷兰官方网站:Dell荷兰
2020/10/04 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
人力资源部经理助理岗位职责
2014/03/04 职场文书
医院信息公开实施方案
2014/05/09 职场文书
爱国主义影片观后感
2015/06/18 职场文书