基于逻辑运算的简单权限系统(实现) 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中的常见排序算法
Mar 27 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
Jan 31 Javascript
JavaScript lodash常见用法系列小结
Aug 24 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
Jan 17 Javascript
bootstrap suggest下拉框使用详解
Apr 10 Javascript
JavaScript之promise_动力节点Java学院整理
Jul 03 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
Sep 18 Javascript
原生JS实现手动轮播图效果实例代码
Nov 22 Javascript
使用异步组件优化Vue应用程序的性能
Apr 28 Javascript
VUE实现密码验证与提示功能
Oct 18 Javascript
Vue学习之组件用法实例详解
Jan 06 Javascript
原生js实现拖拽移动与缩放效果
Aug 24 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
JAVA/JSP学习系列之七
2006/10/09 PHP
在PHP中使用灵巧的体系结构
2006/10/09 PHP
php打包网站并在线压缩为zip
2016/02/13 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
python实现随机森林random forest的原理及方法
2017/12/21 Python
python使用turtle绘制分形树
2018/06/22 Python
Python实现的企业粉丝抽奖功能示例
2019/07/26 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
YesBabyOnline美国:全球性的在线婚纱礼服工厂
2018/05/05 全球购物
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
感恩的演讲稿
2014/05/06 职场文书
施工安全生产承诺书
2014/05/23 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书
Python深度学习之Pytorch初步使用
2021/05/20 Python
Mysql数据库命令大全
2021/05/26 MySQL
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs
Java完整实现记事本代码
2022/06/16 Java/Android
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers