详解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 相关文章推荐
JavaScript 异步调用框架 (Part 5 - 链式实现)
Aug 04 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
Jul 11 Javascript
JS根据年月获得当月天数的实现代码
Jul 03 Javascript
浅谈javascript的分号的使用
May 12 Javascript
JavaScript必知必会(五) eval 的使用
Jun 08 Javascript
JS获取随机数和时间转换的简单实例
Jul 10 Javascript
JavaScript面试开发常用的知识点总结
Aug 08 Javascript
js实现点击图片自动提交action的简单方法
Oct 16 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
Jul 28 Javascript
Vue.js更改调试地址端口号的实例
Sep 19 Javascript
jQuery AJAX与jQuery事件的分析讲解
Feb 18 jQuery
Vue实现星级评价效果实例详解
Dec 30 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画图实例
2014/11/05 PHP
php制作文本式留言板
2015/03/18 PHP
php单例模式的简单实现方法
2016/06/10 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
JS 常用校验函数
2009/03/26 Javascript
javascript Demo模态窗口
2009/12/06 Javascript
js展开闭合效果演示代码
2013/07/24 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
判断iframe里的页面是否加载完成
2014/06/06 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
python实现下载pop3邮件保存到本地
2018/06/19 Python
transform python环境快速配置方法
2018/09/27 Python
Django实现文件上传和下载功能
2019/10/06 Python
python中自带的三个装饰器的实现
2019/11/08 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
python 深度学习中的4种激活函数
2020/09/18 Python
社区优秀志愿者先进事迹
2014/05/09 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书
法律意见书范本
2015/06/04 职场文书
python实现语音常用度量方法的代码详解
2021/05/25 Python