详解js私有作用域中创建特权方法


Posted in Javascript onJanuary 25, 2016

本文实例分享了js私有作用域中创建特权方法,供大家参考,具体内容如下

特权方法就是有权访问私有变量和私有函数的公有方法:

function MyObject(){
  var privateVariable = 10;
  function privateFunction(){
    return false;
  }
  this.publicMethod = function(){
    privateVariable ++;
    return privateFunction();
  };
}  
var x = new MyObject();
console.log(x.publicMethod()) ;//false

私有作用域中定义私有变量和函数,同样也可以创建特权方法,如:

(function(){
  var privateValue = 10;
  function privateFunction(){
    return false;
  }
  
  MyObject = function(){}; //没有var 属于全局变量,严格模式下会报错
  
  MyObject.prototype.publicMethod = function(){
    privateValue ++;
    return privateFunction();
  };
})();

var instance = new MyObject();
console.log(instance.publicMethod());

这里就可以看出实际上就是在私有作用域中定义了一个全局的构建函数;其中的一个方法就是返回私有作用域中的一个私有变量和属性。写成下面这样就可以更好地了解:

Obj = function(){};

(function(){
  var x = 10;
  function y(){
    return x + 10;
  }

  Obj.prototype.say = function(){
    console.log(y());
  };
})()

var ins = new Obj();
ins.say();

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
javascript firefox不显示本地预览图片问题的解决方法
Nov 12 Javascript
自写的一个jQuery圆角插件
Oct 26 Javascript
checkbox设置复选框的只读效果不让用户勾选
Aug 12 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
Dec 16 Javascript
js/jquery判断浏览器的方法小结
Sep 02 Javascript
js控制页面的全屏展示和退出全屏显示的方法
Mar 10 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
Apr 17 Javascript
ztree实现左边动态生成树右边为内容详情功能
Nov 03 Javascript
利用babel将es6语法转es5的简单示例
Dec 01 Javascript
Vue.js 图标选择组件实践详解
Dec 03 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
Aug 15 Javascript
JS数组属性去重并校验重复数据
Jan 10 Javascript
超赞的jQuery图片滑块动画特效代码汇总
Jan 25 #Javascript
理解js对象继承的N种模式
Jan 25 #Javascript
解决js函数闭包内存泄露问题的办法
Jan 25 #Javascript
JavaScript数据类型学习笔记
Jan 25 #Javascript
分步解析JavaScript实现tab选项卡自动切换功能
Jan 25 #Javascript
jQuery form 表单验证插件(fieldValue)校验表单
Jan 24 #Javascript
Jquery实现纵向横向菜单
Jan 24 #Javascript
You might like
PHP中创建并处理图象
2006/10/09 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
php实现的短网址算法分享
2014/06/20 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
asp 的 分词实现代码
2007/05/24 Javascript
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
jquery实现动态操作select选中
2015/02/11 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
详解Vue方法与事件
2017/03/09 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
Python 常用 PEP8 编码规范详解
2017/01/22 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
Python实现结构体代码实例
2020/02/10 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
2020/03/24 Python
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
美国女鞋品牌:naturalizer(娜然)
2016/08/01 全球购物
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
机电专业大学生求职信
2013/10/04 职场文书
优秀高中生事迹材料
2014/02/11 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
法律进企业活动方案
2014/03/04 职场文书
质量承诺书范文
2014/03/27 职场文书
公证书样本
2014/04/10 职场文书
孔子观后感
2015/06/08 职场文书
Nginx域名转发使用场景代码实例
2021/03/31 Servers
mysql多表查询-笔记七
2021/04/05 MySQL