基于逻辑运算的简单权限系统(实现) 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 Undefined,Null类型和NaN值区别
Oct 22 Javascript
利用jquery的获取JS文件中的字符串内容
Feb 14 Javascript
Javascript 遮罩层和加载效果代码
Aug 01 Javascript
javascript用户注册提示效果的简单实例
Aug 17 Javascript
js导航栏单击事件背景变换示例代码
Jan 13 Javascript
JavaScript学习笔记之JS函数
Jan 22 Javascript
jQuery 特性操作详解及实例代码
Sep 29 Javascript
js Canvas绘制圆形时钟教程
Feb 06 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
Dec 24 Javascript
element-ui多文件上传的实现示例
Apr 10 Javascript
使用jQuery如何写一个含验证码的登录界面
May 13 jQuery
JavaScript实现栈结构Stack过程详解
Mar 07 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新手上路(四)
2006/10/09 PHP
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
php商品对比功能代码分享
2015/09/24 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
2015/03/04 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
理解JS事件循环
2016/01/07 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
2016/03/07 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
最全的JavaScript开发工具列表 总有一款适合你
2017/06/29 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
[03:03]DOTA2 2017国际邀请赛开幕战队入场仪式
2017/08/09 DOTA
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
标准毕业生自荐信范文
2013/11/04 职场文书
父亲生日宴会答谢词
2014/01/10 职场文书
潘婷洗发水广告词
2014/03/14 职场文书
领导班子对照检查材料
2014/09/22 职场文书
2016特色励志班级口号
2015/12/24 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers
Python中的 enumerate和zip详情
2022/05/30 Python
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android