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 进度条 实现代码
Jul 30 Javascript
jQuery 创建Dom元素
May 07 Javascript
javascript阻止scroll事件多次执行的思路及实现
Nov 08 Javascript
jquery+json实现数据列表分页示例代码
Nov 15 Javascript
浅析JavaScript中两种类型的全局对象/函数
Dec 05 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
Nov 29 Javascript
原生JS实现图片轮播切换效果
Dec 15 Javascript
Angular中的$watch方法详解
Sep 18 Javascript
vue实现的下拉框功能示例
Jan 29 Javascript
Node.js API详解之 dgram模块用法实例分析
Jun 05 Javascript
如何实现echarts markline标签名显示自己想要的
Jul 20 Javascript
微信小程序实现多行文字滚动
Nov 18 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中常用编辑器推荐
2007/01/02 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
PHP生成短网址的3种方法代码实例
2014/07/08 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
2013/03/06 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
Angular路由简单学习
2016/12/26 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
vue项目实现github在线预览功能
2018/06/20 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
python实现中文输出的两种方法
2015/05/09 Python
深入理解Django中内置的用户认证
2017/10/06 Python
python实现机器人行走效果
2018/01/29 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
Python Numpy:找到list中的np.nan值方法
2018/10/30 Python
django数据库自动重连的方法实例
2019/07/21 Python
基于python实现地址和经纬度转换
2020/05/19 Python
如何利用Python 进行边缘检测
2020/10/14 Python
威盛公司软件C++工程师笔试题面试题
2012/07/16 面试题
制作部班长职位说明书
2014/02/26 职场文书
教学质量评估实施方案
2014/03/17 职场文书
2014年学校卫生工作总结
2014/11/20 职场文书
介绍信格式
2015/01/30 职场文书
大学毕业生个人总结
2015/02/28 职场文书
python 模块重载的五种方法
2021/04/24 Python
Python实战之实现康威生命游戏
2021/04/26 Python
图文详解Nginx版本平滑升级方案
2021/09/15 Servers