详解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 相关文章推荐
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
Aug 09 Javascript
常用Extjs工具:Extjs.util.Format使用方法
Mar 22 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
Nov 30 Javascript
jQuery的animate函数学习记录
Aug 08 Javascript
jQuery中:focus选择器用法实例
Dec 30 Javascript
jQuery实现鼠标选文字发新浪微博的方法
Apr 02 Javascript
JavaScript实现垂直向上无缝滚动特效代码
Nov 23 Javascript
AJAX和jQuery动态加载数据的实现方法
Dec 05 Javascript
weui框架实现上传、预览和删除图片功能代码
Aug 24 Javascript
QRCode.js二维码生成并能长按识别
Oct 16 Javascript
vue与原生app的对接交互的方法(混合开发)
Nov 28 Javascript
微信小程序实现加入购物车滑动轨迹
Nov 18 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文本转图片自动换行的方法
2013/03/13 PHP
简单的php文件上传(实例)
2013/10/27 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
基于jQuery实现仿51job城市选择功能实例代码
2016/03/02 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
Vue自定义指令结合阿里云OSS优化图片的实现方法
2019/11/12 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
google广告之另类js调用实现代码
2020/08/22 Javascript
js+css3实现简单时钟特效
2020/09/13 Javascript
详解在Python和IPython中使用Docker
2015/04/28 Python
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2018/08/07 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
2019/08/13 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
DNA测试:Orig3n
2019/03/01 全球购物
毕业生个人投资创业计划书
2014/01/04 职场文书
面试后感谢信
2014/02/01 职场文书
《散步》教学反思
2014/03/02 职场文书
五分钟演讲稿
2014/04/30 职场文书
团队队名口号大全
2014/06/06 职场文书
计算机软件专业求职信
2014/06/10 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
评先进个人材料
2014/12/29 职场文书
通过Qt连接OpenGauss数据库的详细教程
2021/06/23 PostgreSQL