JS块级作用域和私有变量实例分析


Posted in Javascript onMay 11, 2019

本文实例讲述了JS块级作用域和私有变量。分享给大家供大家参考,具体如下:

块级作用域

(function(){
  //这里是块级作用域
})()

例如:

(function(){
  for(var i=0;i<5;i++){
    alert(i);//0,1,2,3,4
  }
})();
alert(i);//error

上例中,定义了一个块级作用域,变量i在块级作用域中可见的,但是在块级作用域外部则无法访问。

这种技术经常在全局作用域中被用在函数外部,从而限制向全局作用域中添加过多的变量和函数。

私有变量

任何在函数中定义的变量,都可以认为是私有变量。因为不能在函数的外部访问这些变量。私有变量包括函数的参数、局部变量和在函数内部定义的其他函数。

我们把有权访问私有变量和私有函数的公有方法称为特权方法:

function MyObject(){
//私有变量和私有函数
  var privateVariable = 10;
  function privateFunction(){
    return false;
  }
  //特权方法,特权方法作为闭包有权访问在构造函数中定义的所有变量和函数
  this.publicMethod = function (){
    privateVariable++;
    return privateFunction();
  };
}
var obj = new MyObject();
obj.publicMethod();//

原型模式定义共有方法:

(function(){
  //私有变量和私有函数
  var privateVariable = 10;
  function privateFunction(){
    return false;
  }
  //构造函数
  MyObject = function(){
  };
  //公有/特权方法
  MyObject.prototype.publicMethod = function(){
    privateVariable++;
    return privateFunction();
  };
})();

模块模式:

var singleton = function(){
//私有变量和私有函数
  var privateVariable = 10;
  function privateFunction(){
    return false;
  }
  //特权/公有方法和属性
  return {
    publicProperty: true,
    publicMethod : function(){
      privateVariable++;
      return privateFunction();
    }
  };
}();

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
静态页面的值传递(三部曲)
Sep 25 Javascript
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
Oct 16 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
May 28 Javascript
基于JavaScript代码实现pc与手机之间的跳转
Dec 23 Javascript
BootStrap创建响应式导航条实例代码
May 31 Javascript
jQuery Form表单取值的方法
Jan 11 Javascript
ES5学习教程之Array对象
Apr 01 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
Apr 07 Javascript
Node.js 使用流实现读写同步边读边写功能
Sep 11 Javascript
微信小程序三级联动选择器使用方法
May 19 Javascript
微信小程序实现弹出菜单
Jul 19 Javascript
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
微信小程序封装的HTTP请求示例【附升级版】
May 11 #Javascript
微信小程序自定义toast组件的方法详解【含动画】
May 11 #Javascript
jQuery实现动态生成年月日级联下拉列表示例
May 11 #jQuery
JS实现获取当前所在周的周六、周日示例分析
May 11 #Javascript
js核心基础之构造函数constructor用法实例分析
May 11 #Javascript
js核心基础之闭包的应用实例分析
May 11 #Javascript
vue下载excel的实现代码后台用post方法
May 10 #Javascript
You might like
基于PHP与XML的PDF文档生成技术
2006/10/09 PHP
PHP类中的魔术方法(Magic Method)简明总结
2014/07/08 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
用 javascript 实现的点击复制代码
2007/03/24 Javascript
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
2020/04/21 Javascript
用Python登录Gmail并发送Gmail邮件的教程
2015/04/17 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
python Matplotlib模块的使用
2020/09/16 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
学生党员思想汇报范文
2014/01/09 职场文书
大学生咖啡店创业计划书
2014/01/21 职场文书
优秀企业获奖感言
2014/02/01 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
董事长年会致辞
2015/07/29 职场文书
检举信的写法
2019/04/10 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js