欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-04 19:32:58
本文实例讲述了js块级作用域和私有变量。分享给大家供大家参考,具体如下: 块级作用域 (function(){ //这里是块级作用域 })()...

本文实例讲述了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程序设计有所帮助。