基于逻辑运算的简单权限系统(实现) 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 相关文章推荐
让插入到 innerHTML 中的 script 跑起来的实现代码
Jul 01 Javascript
Javascript中的Split使用方法与技巧
Mar 09 Javascript
jquery tab插件制作实现代码
Jun 22 Javascript
JS函数多个参数默认值指定方法分析
Nov 28 Javascript
js实现动态显示时间效果
Mar 06 Javascript
vue里面父组件修改子组件样式的方法
Feb 03 Javascript
Vue实现一个图片懒加载插件
Mar 11 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
Apr 22 Javascript
使用axios发送post请求,将JSON数据改为form类型的示例
Oct 31 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
Dec 16 Javascript
js实现滑动进度条效果
Aug 21 Javascript
JavaScript逻辑运算符相关总结
Sep 04 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
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
用PHP解决的一个栈的面试题
2014/07/02 PHP
php中运用http调用的GET和POST方法示例
2014/09/29 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
基于jquery的滑动样例代码
2010/11/20 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
2017/01/09 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
Python对象体系深入分析
2014/10/28 Python
python魔法方法-属性访问控制详解
2016/07/25 Python
Java分治归并排序算法实例详解
2017/12/12 Python
Python Flask框架模板操作实例分析
2019/05/03 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
Hotels.com南非:酒店预订
2017/11/02 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
SQL Server面试题
2016/10/17 面试题
东方红海科技面试题软件测试方面
2012/02/08 面试题
《晚上的太阳》教学反思
2014/04/23 职场文书
大学生应聘导游自荐信
2014/06/02 职场文书
2015年计生工作总结范文
2015/04/24 职场文书
项目战略合作意向书
2015/05/08 职场文书
关于环保的宣传稿
2015/07/23 职场文书
公司保洁员管理制度
2015/08/04 职场文书
《鲸》教学反思
2016/02/23 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python