基于逻辑运算的简单权限系统(实现) 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中的array数组使用技巧
Jan 31 Javascript
基于jquery的获取mouse坐标插件的实现代码
Apr 01 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
Dec 19 Javascript
jQuery中读取json文件示例代码
May 10 Javascript
JQuery遍历元素的父辈和祖先的方法
Sep 18 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
Jan 04 Javascript
vue.js  父向子组件传参的实例代码
Oct 29 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
Nov 27 Javascript
vue组件中使用iframe元素的示例代码
Dec 13 Javascript
详解vue 兼容IE报错解决方案
Dec 29 Javascript
小程序数据通信方法大全(推荐)
Apr 15 Javascript
微信小程序实现签字功能
Dec 23 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
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
Laravel框架中自定义模板指令总结
2017/12/17 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
2016/09/27 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
JS散列表碰撞处理、开链法、HashTable散列示例
2019/02/08 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
Python运算符重载详解及实例代码
2017/03/07 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
Python进程池Pool应用实例分析
2019/11/27 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
中医专业应届生求职信
2013/11/17 职场文书
经理助理岗位职责
2014/03/05 职场文书
奥巴马英文演讲稿
2014/05/15 职场文书
学校就业推荐信范文
2014/05/19 职场文书
2015新学期家长寄语
2015/02/26 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书
运动会加油稿30字
2015/07/21 职场文书
学校就业保障协议书
2019/06/24 职场文书
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python