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 相关文章推荐
JavaScript中的History历史对象
Jan 16 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
Mar 31 Javascript
基于jquery的鼠标拖动效果代码
May 30 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
Apr 17 Javascript
浅析JavaScript中的delete运算符
Nov 30 Javascript
node.js发送邮件email的方法详解
Jan 06 Javascript
js 用于检测类数组对象的函数方法
May 02 Javascript
深入理解vue Render函数
Jul 19 Javascript
微信小程序indexOf的替换方法(推荐)
Jan 14 Javascript
vue中的过滤器及其时间格式化问题
Apr 09 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
Apr 24 Javascript
js实现简单五子棋游戏
May 28 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 程式大小
2006/12/06 PHP
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
php输出xml属性的方法
2015/03/19 PHP
PHP5.3以上版本安装ZendOptimizer扩展
2015/03/27 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
input 高级限制级用法
2009/03/26 Javascript
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
全面理解闭包机制
2016/07/11 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
详解微信小程序 登录获取unionid
2017/06/27 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
react 创建单例组件的方法
2018/04/26 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
Python代理抓取并验证使用多线程实现
2013/05/03 Python
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
python生成器generator用法实例分析
2015/06/04 Python
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
韩国保养品、日本药妆购物网:小三美日
2018/12/30 全球购物
mysql的最长数据库名,表名,字段名可以是多长
2014/04/21 面试题
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
十佳好少年事迹材料
2014/08/21 职场文书
农民工预备党员思想汇报
2014/09/14 职场文书
给老师的一封感谢信
2015/01/20 职场文书
人事聘任通知
2015/04/21 职场文书
七一表彰大会简报
2015/07/20 职场文书
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
vue如何清除浏览器历史栈
2022/05/25 Vue.js