详解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 相关文章推荐
基于JQuery的简单实现折叠菜单代码
Sep 15 Javascript
js中直接声明一个对象的方法
Aug 10 Javascript
jquery SweetAlert插件实现响应式提示框
Aug 18 Javascript
JS实现左右无缝轮播图代码
May 01 Javascript
js实现StringBuffer的简单实例
Sep 02 Javascript
ReactJs快速入门教程(精华版)
Nov 28 Javascript
vue.js全局API之nextTick全面解析
Jul 07 Javascript
Angular5中调用第三方js插件的方法
Feb 26 Javascript
快速解决brew安装特定版本flow的问题
May 17 Javascript
vue数据操作之点击事件实现num加减功能示例
Jan 19 Javascript
详解微信小程序之一键复制到剪切板
Apr 24 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
Aug 27 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 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
zend framework多模块多布局配置
2011/02/26 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
treepanel动态加载数据实现代码
2012/12/15 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
2016/07/01 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
[01:28:56]2014 DOTA2华西杯精英邀请赛 5 24 CIS VS DK
2014/05/26 DOTA
理解Python垃圾回收机制
2016/02/12 Python
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
python 接口测试response返回数据对比的方法
2018/02/11 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
python tkinter基本属性详解
2019/09/16 Python
python使用SQLAlchemy操作MySQL
2020/01/02 Python
在pycharm中debug 实时查看数据操作(交互式)
2020/06/09 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
副职竞争上岗演讲稿
2014/05/12 职场文书
机械设计及其自动化专业求职信
2014/06/09 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
2015年校长新年寄语
2014/12/08 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书