首页 > 开发 > JS > 正文

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

2024-05-06 16:50:46
字体:
来源:转载
供稿:网友

本文实例讲述了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/Ajax教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表