基于逻辑运算的简单权限系统(实现) 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
修复bash漏洞的shell脚本分享
Dec 31 Javascript
详解Javacript和AngularJS中的Promises
Feb 09 Javascript
jquery trigger实现联动的方法
Feb 29 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
Mar 11 Javascript
sso跨域写cookie的一段js脚本(推荐)
May 25 Javascript
canvas知识总结
Jan 25 Javascript
详解react-webpack2-热模块替换[HMR]
Aug 03 Javascript
微信小程序倒计时功能实现代码
Nov 09 Javascript
vue项目开发中setTimeout等定时器的管理问题
Sep 13 Javascript
Vue仿Bibibili首页的问题
Jan 21 Vue.js
在vue中import()语法不能传入变量的问题及解决
Apr 01 Vue.js
用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
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
PHP字符串 ==比较运算符的副作用
2009/10/21 PHP
PHP向socket服务器收发数据的方法
2015/01/24 PHP
php无限级分类实现方法分析
2016/10/19 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
2019/05/01 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
extjs fckeditor集成代码
2009/05/10 Javascript
一起来写段JS drag拖动代码
2010/12/09 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
vue中使用better-scroll实现滑动效果及注意事项
2018/11/15 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
AJAX的优缺点都有什么
2015/08/18 面试题
企业宣传工作方案
2014/06/02 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
红高粱观后感
2015/06/10 职场文书
导游词之五台山
2019/10/11 职场文书