基于逻辑运算的简单权限系统(实现) 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 相关文章推荐
javascript document.images实例
May 27 Javascript
jQuery AjaxQueue改进步骤
Oct 06 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
Jul 03 Javascript
jQuery使用animate创建动画用法实例
Aug 07 Javascript
基于React.js实现原生js拖拽效果引发的思考
Mar 30 Javascript
CSS3 media queries结合jQuery实现响应式导航
Sep 30 Javascript
结合mint-ui移动端下拉加载实践方法总结
Nov 08 Javascript
Node.js readline模块与util模块的使用
Mar 01 Javascript
vue 修改 data 数据问题并实时显示的方法
Aug 27 Javascript
angularJs中ng-model-options设置数据同步的方法
Sep 30 Javascript
vue项目强制清除页面缓存的例子
Nov 06 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
Sep 25 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 Google的translate API代码
2008/12/10 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
JS 图片缩放效果代码
2010/06/09 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
使用js获取图片原始尺寸
2014/12/03 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
详解Angular2组件之间如何通信
2017/06/22 Javascript
探究react-native 源码的图片缓存问题
2017/08/24 Javascript
js中url对象化管理分析
2017/12/29 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
jquery+ajax实现异步上传文件显示进度条
2020/08/17 jQuery
Python2.x中文乱码问题解决方法
2015/06/02 Python
pycharm远程调试openstack代码
2017/11/21 Python
对pandas中apply函数的用法详解
2018/04/10 Python
python实现俄罗斯方块游戏
2020/03/25 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
python tkinter窗口最大化的实现
2019/07/15 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
python实现简单俄罗斯方块
2020/03/13 Python
Matplotlib自定义坐标轴刻度的实现示例
2020/06/18 Python
把富文本的回车转为br标签
2019/08/09 HTML / CSS
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
MYSQL基础面试题
2012/05/13 面试题
教师对学生的评语
2014/04/28 职场文书
放假通知格式
2015/04/14 职场文书
仰望星空观后感
2015/06/10 职场文书
《猴王出世》教学反思
2016/02/23 职场文书
代码复现python目标检测yolo3详解预测
2022/05/06 Python
Python find()、rfind()方法及作用
2022/12/24 Python