详解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 实现的自定义对话框
Mar 24 Javascript
node.js中Socket.IO的进阶使用技巧
Nov 04 Javascript
angularjs中的单元测试实例
Dec 06 Javascript
使用javascript实现判断当前浏览器
Apr 14 Javascript
JavaScript中setUTCFullYear()方法的使用简介
Jun 12 Javascript
学习Angularjs分页指令
Jul 01 Javascript
轮播的简单实现方法
Jul 28 Javascript
微信小程序仿朋友圈发布动态功能
Jul 15 Javascript
jquery实现搜索框功能实例详解
Jul 23 jQuery
vue-cli3+ts+webpack实现多入口多出口功能
May 30 Javascript
vue如何使用async、await实现同步请求
Dec 09 Javascript
js实现简单的轮播图效果
Dec 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的一个完整SMTP类(解决邮件服务器需要验证时的问题)
2006/10/09 PHP
解析php时间戳与日期的转换
2013/06/06 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
php约瑟夫问题解决关于处死犯人的算法
2015/03/23 PHP
php实现算术验证码功能
2018/12/05 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
2016/09/17 Javascript
js实现的xml对象转json功能示例
2016/12/24 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
微信小程序实现换肤功能
2018/03/14 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
Python Socket传输文件示例
2017/01/16 Python
python list排序的两种方法及实例讲解
2017/03/20 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
django使用LDAP验证的方法示例
2018/12/10 Python
Python实现代码统计工具
2019/09/19 Python
python获取命令行参数实例方法讲解
2020/11/02 Python
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
什么是事务?事务有哪些性质?
2012/03/11 面试题
软件测试企业面试试卷
2016/07/13 面试题
奥巴马演讲稿
2014/01/08 职场文书
大学军训感言600字
2014/02/25 职场文书
我们的节日端午节活动总结
2015/02/11 职场文书
高一军训口号
2015/12/25 职场文书
高中语文教学反思范文
2016/02/16 职场文书
2017春节晚会开幕词
2016/03/03 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
python四种出行路线规划的实现
2021/06/23 Python
python实现简单的聊天小程序
2021/07/07 Python