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函数的重载
Sep 22 Javascript
一个简单的JavaScript数据缓存系统实现代码
Oct 24 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
Dec 30 Javascript
学习JavaScript设计模式之享元模式
Jan 18 Javascript
浅谈js中的in-for循环
Jun 28 Javascript
前端JS面试中常见的算法问题总结
Dec 23 Javascript
使用vue实现点击按钮滑出面板的实现代码
Jan 10 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
Jul 24 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
Aug 08 jQuery
p5.js入门教程之平滑过渡(Easing)
Mar 16 Javascript
angular4 共享服务在多个组件中数据通信的示例
Mar 30 Javascript
vue-cli3脚手架的配置及使用教程
Aug 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 minixml详解
2008/07/19 PHP
php str_pad 函数用法简介
2009/07/11 PHP
discuz的php防止sql注入函数
2011/01/17 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
2016/07/01 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
JavaScript递归算法生成树形菜单
2017/08/15 Javascript
使用JSON格式提交数据到服务端的实例代码
2018/04/01 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
vue里如何主动销毁keep-alive缓存的组件
2019/03/21 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
javascript前端和后台进行数据交互方法示例
2020/08/07 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
Python自定义一个异常类的方法
2019/06/27 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
python中用ggplot绘制画图实例讲解
2021/01/26 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
全球独特生活方式产品和礼品购物网站:AHAlife
2018/09/18 全球购物
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
开业主持词
2014/03/21 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
岳麓书院导游词
2015/02/03 职场文书
少先队入队仪式主持词
2015/07/04 职场文书