javascript入门基础之私有变量


Posted in Javascript onFebruary 23, 2010

先看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 相关文章推荐
jQuery之自动完成组件的深入解析
Jun 19 Javascript
js调试系列 源码定位与调试[基础篇]
Jun 18 Javascript
Jquery日期选择datepicker插件用法实例分析
Jun 08 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
Sep 01 Javascript
深入浅析JavaScript中的constructor
Apr 19 Javascript
Bootstrap CSS布局之按钮
Dec 17 Javascript
javascript过滤数组重复元素的实现方法
May 03 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
Jul 19 Javascript
如何从零开始利用js手写一个Promise库详解
Apr 19 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
Jul 10 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
Jul 19 Javascript
解决vue+elementui项目打包后样式变化问题
Aug 03 Javascript
第一个JavaScript入门基础 document.write输出
Feb 22 #Javascript
jQuery入门问答 整理的几个常见的初学者问题
Feb 22 #Javascript
jQuery 操作下拉列表框实现代码
Feb 22 #Javascript
JavaScript 编写匿名函数的几种方法
Feb 21 #Javascript
jquery 得到当前页面高度和宽度的两个函数
Feb 21 #Javascript
jquery validator 插件增加日期比较方法
Feb 21 #Javascript
javascript 定义新对象方法
Feb 20 #Javascript
You might like
用PHP和ACCESS写聊天室(四)
2006/10/09 PHP
php下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
javascript中的prototype属性使用说明(函数功能扩展)
2010/08/16 Javascript
JavaScript中的排序算法代码
2011/02/22 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
javascript运动详解
2015/07/06 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
微信小程序列表时间戳转换实现过程解析
2019/10/12 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
Python字符串的一些操作方法总结
2019/06/10 Python
python自动化测试之如何解析excel文件
2019/06/27 Python
使用layui实现左侧菜单栏及动态操作tab项的方法
2020/11/10 HTML / CSS
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
银行员工辞职信范文
2014/01/20 职场文书
感恩节活动方案
2014/01/27 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
教师个人自我评价范文
2014/04/13 职场文书
职务说明书范文
2014/05/07 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
公安派出所所长四风问题个人对照检查材料
2014/10/04 职场文书
导游词之山海关
2019/12/10 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript