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 相关文章推荐
JavaScript入门之基本函数详解
Oct 21 Javascript
js函数获取html中className所在的内容并去除标签
Sep 08 Javascript
javascript自定义的addClass()方法
May 28 Javascript
Js的Array数组对象详解
Feb 22 Javascript
Three.js学习之几何形状
Aug 01 Javascript
AngularJS教程 ng-style 指令简单示例
Aug 03 Javascript
AngularJS Select(选择框)使用详解
Jan 18 Javascript
vue实现微信分享功能
Nov 28 Javascript
Angular8路由守卫原理和使用方法
Aug 29 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 Javascript
小程序分享链接onShareAppMessage的具体用法
May 22 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
Jul 30 Javascript
微信小程序封装的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 str_replace的替换漏洞
2008/03/15 PHP
php实现多张图片上传加水印技巧
2013/04/18 PHP
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
学习php设计模式 php实现适配器模式
2015/12/07 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
jQuery 表单验证扩展(三)
2010/10/20 Javascript
25个非常棒的jQuery滑块插件和教程小结
2011/09/02 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
python cs架构实现简单文件传输
2020/03/20 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
详解python中__name__的意义以及作用
2019/08/07 Python
后勤人员岗位职责
2013/12/17 职场文书
药学专业个人的自我评价
2013/12/31 职场文书
幼儿园教师节活动方案
2014/02/02 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
2016年公司新年寄语
2015/08/17 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
django如何自定义manage.py管理命令
2021/04/27 Python
MySQL如何构建数据表索引
2021/05/13 MySQL
KVM基础命令详解
2022/04/30 Servers