javascript入门基础之私有变量

 更新时间:2010年02月23日 13:43:40   作者:  
开始接触这门语言时,可能都会觉得这门语言缺少访问控制符(如public、private、protected),从而导致不能定义私有变量和私有方法。但经过进一步了解就会知道javascript同样可以有私有变量。
先看javascript的普通函数用法
复制代码 代码如下:

function sum(a,b){
var c = 10;
function add(){
c++;
}
add();
return a + b + c;
}
var d = sum(4,5);
alert(d) // 20

可以看出,外部要和函数sum进行交互,只能通过调用和返回值形式,无法访问里面的参数c和内部函数add()。这对于函数来说属于正常逻辑。
接下来看javascript的类用法
复制代码 代码如下:

function sum(pa,pb) {
this.a = pa;
this.b = pb;
this.show = function(){
alert(this.a + this.b);
}
}
var t = new sum(4,5);
t.show();
alert(t.a);

这里通过new创建了sum的对象t。通过t可以调用方法show来显示参数和,也可以直接取参数信息
结合两种方式就产生私有变量和方法的效果。

复制代码 代码如下:

function sum(pa,pb) {
var __c = 10; //私有变量
function __addc(){ //私有方法
__c++;
}
this.a = pa; //公有变量
this.b = pb; //公有变量
this.setc = function(pc){ //公有方法
__c = pc;
__addc();
}
this.show = function(){ //公有方法
alert(this.a + this.b + __c);
}
}
var t = new sum(4,5);
t.setc(1);
t.show();

从这个例子可以看出,外部无法调用var声明的变量和方法,但外部可以通过公有方法为桥梁实现与私有变量交互
建议:为了便于阅读与区分,私有变量和方法在命名前加一个或者两个下划线。

相关文章

  • javascript实现TreeView 无刷新展开的实例代码

    javascript实现TreeView 无刷新展开的实例代码

    这篇文章介绍了javascript实现TreeView 无刷新展开的实例代码,有需要的朋友可以参考一下
    2013-07-07
  • uni-app跨端自定义指令实现按钮权限操作

    uni-app跨端自定义指令实现按钮权限操作

    实现uni-app自定义指令按钮权限需要涉及到对于vue.config.js新增loader配置,基础正则知识,webpack的loader开发和调试,以及npm本地调试和发布,接下来就从了解这些前置知识开始,需要的朋友可以参考下
    2023-01-01
  • JavaScript模拟实现Promise功能的示例代码

    JavaScript模拟实现Promise功能的示例代码

    这篇文章主要为大家详细介绍了JavaScript如何模拟实现Promise功能,文中的示例代码讲解详细,对我们学习JavaScript有一定的帮助,需要的可以参考一下
    2022-12-12
  • 记录一次websocket封装的过程

    记录一次websocket封装的过程

    这篇文章主要介绍了记录一次websocket封装的过程,帮助大家更好的理解和封装websocket,感兴趣的朋友可以了解下
    2020-11-11
  • 使用pkg打包ThinkJS项目的方法步骤

    使用pkg打包ThinkJS项目的方法步骤

    这篇文章主要介绍了使用pkg打包ThinkJS项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • AngularJS实现textarea记录只能输入规定数量的字符并显示

    AngularJS实现textarea记录只能输入规定数量的字符并显示

    AngularJS 是一个 MV* 框架,最适于开发客户端的单页面应用。它不是个功能库,而是用来开发动态网页的框架。接下来通过本文给大家介绍AngularJS实现textarea记录只能输入规定数量的字符并显示的相关内容,需要的朋友参考下吧
    2016-04-04
  • js构造函数创建对象是否加new问题

    js构造函数创建对象是否加new问题

    本篇文章主要给大家详细分析了js构造函数创建对象加new与不加new的问题,有这方面兴趣的参考学习下。
    2018-01-01
  • 深入理解JavaScript系列(16) 闭包(Closures)

    深入理解JavaScript系列(16) 闭包(Closures)

    本章我们将介绍在JavaScript里大家经常来讨论的话题 —— 闭包(closure)。闭包其实大家都已经谈烂了。尽管如此,这里还是要试着从理论角度来讨论下闭包,看看ECMAScript中的闭包内部究竟是如何工作的
    2012-04-04
  • js图片卷帘门导航菜单特效代码分享

    js图片卷帘门导航菜单特效代码分享

    这篇文章主要介绍了js图片卷帘门导航菜单特效,一款很新颖的图片导航菜单,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-09-09
  • layui框架table 数据表格的方法级渲染详解

    layui框架table 数据表格的方法级渲染详解

    今天小编就为大家分享一篇layui框架table 数据表格的方法级渲染详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08

最新评论