基于逻辑运算的简单权限系统(实现) 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重载函数的辅助方法2
Jul 04 Javascript
动态加载js、css等文件跨iframe实现
Feb 24 Javascript
js创建一个input数组并绑定click事件的方法
Jun 12 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
Jan 27 Javascript
vue双向绑定简要分析
Mar 23 Javascript
Angularjs使用过滤器完成排序功能
Sep 20 Javascript
react build 后打包发布总结
Aug 24 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
Jun 12 Javascript
vue-cli和v-charts实现可视化图表过程解析
Oct 08 Javascript
Vue中正确使用Element-UI组件的方法实例
Oct 13 Javascript
JavaScript setTimeout()基本用法有哪些
Nov 04 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
Nov 10 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 URL参数获取方式的四种例子
2014/02/28 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
如何在node的express中使用socket.io
2014/12/15 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
使用RequireJS库加载JavaScript模块的实例教程
2016/06/06 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
详解Python中dict与set的使用
2015/08/10 Python
Python中的super()方法使用简介
2015/08/14 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
python中下标和切片的使用方法解析
2019/08/27 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
Html5页面二次分享的实现
2018/07/30 HTML / CSS
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
大学生求职简历的自我评价
2013/10/21 职场文书
自我鉴定怎么写
2013/12/05 职场文书
群众路线剖析材料
2014/02/02 职场文书
技术总监管理职责范本
2014/03/06 职场文书
农民工工资支付承诺函
2014/03/31 职场文书
基层党建工作汇报材料
2014/08/15 职场文书
医院领导班子整改方案
2014/10/01 职场文书
个人工作决心书
2015/09/22 职场文书