详解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 相关文章推荐
Google韩国首页图标动画效果
Aug 26 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
Oct 20 Javascript
html中table数据排序的js代码
Aug 09 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
Jun 13 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
Sep 27 Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
Dec 31 Javascript
用js判断输入是否为中文的函数
Mar 10 Javascript
jquery获取复选框checkbox的值实现方法
May 30 Javascript
使用AngularJS2中的指令实现按钮的切换效果
Mar 27 Javascript
Vue开发中整合axios的文件整理
Apr 29 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
Oct 11 Javascript
Vue.js实现数据响应的方法
Aug 13 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 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
php创建图像具体步骤
2017/03/13 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
js 中的switch表达式使用示例
2020/06/03 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
2016/08/24 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
2018/07/12 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
CSS3实现简易版的刮刮乐效果
2016/09/27 HTML / CSS
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
夏洛特的网观后感
2015/06/15 职场文书
HTML中的表格元素介绍
2022/02/28 HTML / CSS
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL