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 相关文章推荐
JS Timing
Apr 21 Javascript
JavaScript Cookie 直接浏览网站分网址
Dec 08 Javascript
js 获取Listbox选择的值的代码
Apr 15 Javascript
JavaScript版DateAdd和DateDiff函数代码
Mar 01 Javascript
js 判断上传文件大小及格式代码
Nov 13 Javascript
Ajax请求在数据量大的时候出现超时的解决方法
Feb 27 Javascript
JavaScript正则表达式的分组匹配详解
Feb 13 Javascript
vue v-model表单控件绑定详解
May 17 Javascript
JS实现json的序列化和反序列化功能示例
Jun 13 Javascript
vue axios请求拦截实例代码
Mar 29 Javascript
layui的表单提交以及验证和修改弹框的实例
Sep 09 Javascript
80行代码写一个Webpack插件并发布到npm
May 24 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
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
javascript this用法小结
2008/12/19 Javascript
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
2010/06/19 Javascript
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
JQuery性能优化的几点建议
2014/05/14 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
Django 解决开发自定义抛出异常的问题
2020/05/21 Python
Python叠加矩形框图层2种方法及效果
2020/06/18 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
《宋庆龄故居的樟树》教学反思
2014/04/07 职场文书
《称象》教学反思
2014/04/25 职场文书
假面舞会策划方案
2014/05/29 职场文书
运动会的口号
2014/06/09 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript