详解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 相关文章推荐
认识延迟时间为0的setTimeout
May 16 Javascript
用于判断用户注册时,密码强度的JS代码
Jan 01 Javascript
jQuery validate 中文API 附validate.js中文api手册
Jul 31 Javascript
jquery下json数组的操作实现代码
Aug 09 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
Dec 08 Javascript
javascript获得服务器端控件的ID的实现代码
Dec 28 Javascript
javascript dom追加内容实现示例
Sep 21 Javascript
使用Js让Html中特殊字符不被转义
Nov 05 Javascript
利用jQuery实现可以编辑的表格
May 26 Javascript
JavaScript使用Range调色及透明度实例
Sep 25 Javascript
Angular+Node生成随机数的方法
Jun 16 Javascript
ElementUI Tag组件实现多标签生成的方法示例
Jul 08 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异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
vue弹出框组件封装实例代码
2019/10/31 Javascript
javascript操作元素的常见方法小结
2019/11/13 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
如何利用JavaScript编写一个格斗小游戏
2021/01/06 Javascript
Python使用pymysql小技巧
2017/06/04 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
《与孩子一起学编程》python自测题
2018/05/27 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
什么是python的必选参数
2020/06/21 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
皇家阿尔伯特英国官方商店:Royal Albert骨瓷
2019/03/25 全球购物
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
新大陆软件面试题
2016/11/24 面试题
材料化学应届生求职信
2013/10/09 职场文书
大学生毕业自我鉴定
2013/11/06 职场文书
20年同学聚会邀请函
2014/02/04 职场文书
幼儿教师培训感言
2014/03/08 职场文书
工作推荐信范文
2014/05/10 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
社区活动总结
2015/02/04 职场文书
教师节校长致辞
2015/07/31 职场文书
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS
python装饰器代码解析
2022/03/23 Python