详解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 相关文章推荐
改变隐藏的input中value值的方法
Mar 19 Javascript
js的Prototype属性解释及常用方法
May 08 Javascript
javascript验证邮件地址和MX记录的方法
Jun 16 Javascript
详解JSONObject和JSONArray区别及基本用法
Oct 25 Javascript
JavaScript中Require调用js的实例分享
Oct 27 Javascript
VueJs 将接口用webpack代理到本地的方法
Nov 27 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
May 27 Javascript
微信小程序实现保存图片到相册功能
Nov 30 Javascript
javascript中this的用法实践分析
Jul 29 Javascript
vue实现商品列表的添加删除实例讲解
May 14 Javascript
vue动画—通过钩子函数实现半场动画操作
Aug 09 Javascript
Openlayers实现点闪烁扩散效果
Sep 24 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
通过文字传递创建的图形按钮
2006/10/09 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
PHP及Zend Engine的线程安全模型分析
2011/11/10 PHP
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
js 目录列举函数
2008/11/06 Javascript
jQuery参数列表集合
2011/04/06 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
常用的JS验证和函数汇总
2014/12/23 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
2017/04/11 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
后勤人员自我鉴定
2013/10/20 职场文书
幼师专业求职推荐信
2013/11/08 职场文书
互联网电子商务专业毕业生求职信
2014/03/18 职场文书
旅游专业毕业生自荐书
2014/06/30 职场文书
升职自荐信范文
2015/03/27 职场文书
PHP中->和=>的意思
2021/03/31 PHP
python单向链表实例详解
2022/05/25 Python