基于逻辑运算的简单权限系统(实现) 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 相关文章推荐
jQuery之字体大小的设置方法
Feb 27 Javascript
jQuery中removeClass()方法用法实例
Jan 05 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
Oct 01 Javascript
js为什么不能正确处理小数运算?
Dec 29 Javascript
JQUERY表单暂存功能插件分享
Feb 23 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
Nov 16 Javascript
bootstrap是什么_动力节点Java学院整理
Jul 14 Javascript
ionic2懒加载配置详解
Sep 01 Javascript
vuex如何重置所有state(可定制)
Jan 17 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
Sep 18 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
Jul 20 Javascript
vue 单页应用和多页应用的优劣
Oct 22 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设计模式中工厂模式详细介绍
2013/05/15 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
php判断目录存在的简单方法
2019/09/26 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
node.js中的fs.chmodSync方法使用说明
2014/12/18 Javascript
jquery中radio checked问题
2015/03/16 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
Webpack打包慢问题的完美解决方法
2017/03/16 Javascript
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
Python入门篇之字符串
2014/10/17 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
python实现Adapter模式实例代码
2018/02/09 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
python标识符命名规范原理解析
2020/01/10 Python
Python enumerate内置库用法解析
2020/02/24 Python
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
英国标准协会商店:BSI Shop
2019/02/25 全球购物
幼儿园亲子活动方案
2014/01/29 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
党员个人自我评价
2015/03/03 职场文书
寻找成龙观后感
2015/06/12 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
社区结对共建协议书
2016/03/23 职场文书
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS
详解pytorch创建tensor函数
2022/03/22 Python
GPU服务器的多用户配置方法
2022/07/07 Servers