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 相关文章推荐
jQuery使用动态渲染表单功能完成ajax文件下载
Jan 15 Javascript
一个CSS+jQuery实现的放大缩小动画效果
Feb 19 Javascript
Javascript字符串对象的常用方法简明版
Jun 26 Javascript
JS辨别访问浏览器判断是android还是ios系统
Aug 19 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
Sep 06 Javascript
jquery validate表单验证的基本用法入门
Jan 18 Javascript
详解Javascript函数声明与递归调用
Oct 22 Javascript
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
webpack中的热刷新与热加载的区别
Apr 09 Javascript
jQuery插件jsonview展示json数据
May 26 jQuery
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
Oct 28 Javascript
js canvas画布实现高斯模糊效果
Nov 27 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中随机显示图片的函数代码
2011/06/23 PHP
浅析php中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
js和php邮箱地址验证的实现方法
2014/01/09 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
2016/07/07 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
PHP获取二叉树镜像的方法
2018/01/17 PHP
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
移动节点的jquery代码
2014/01/13 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
2016/06/21 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
修复 Django migration 时遇到的问题解决
2018/06/14 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
Python求离散序列导数的示例
2019/07/10 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
python文件操作的简单方法总结
2019/11/07 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
Pandas中DataFrame基本函数整理(小结)
2020/07/20 Python
Python将QQ聊天记录生成词云的示例代码
2021/02/10 Python
印度第一网上礼品店:IGP.com
2020/02/06 全球购物
学前教育专业毕业生自荐信
2013/10/03 职场文书
售后主管岗位职责
2013/12/08 职场文书
应届生如何写自荐信
2014/01/05 职场文书
村捐赠仪式答谢词
2014/01/21 职场文书
药品采购员岗位职责
2014/02/08 职场文书
交通文明倡议书
2014/05/16 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
2015年大学生工作总结
2015/04/21 职场文书
2015双创工作总结
2015/07/24 职场文书
MySQL开启事务的方式
2021/06/26 MySQL
Js类的构建与继承案例详解
2021/09/15 Javascript