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的Validation插件中Remote验证的中文问题
Jul 26 Javascript
JavaScript中关于indexOf的使用方法与问题小结
Aug 05 Javascript
举例讲解AngularJS中的模块
Jun 17 Javascript
Javascript 引擎工作机制详解
Nov 30 Javascript
浅谈JavaScript的闭包函数
Dec 08 Javascript
AngularJS常见过滤器用法实例总结
Jul 06 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
Sep 02 Javascript
AngularJS 的$timeout服务示例代码
Sep 21 Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 Javascript
JavaScript中this的学习笔记及用法整理
Feb 17 Javascript
基于canvas实现手写签名(vue)
May 21 Javascript
原生Javascript+HTML5一步步实现拖拽排序
Jun 12 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
建立动态的WML站点(一)
2006/10/09 PHP
关于尾递归的使用详解
2013/05/02 PHP
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
jquery tab标签页的制作
2010/05/10 Javascript
jquery 操作表格实现代码(多种操作打包)
2011/03/20 Javascript
基于jquery的时间段实现代码
2012/08/02 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
深入浅出讲解ES6的解构
2016/08/03 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
python实现下载指定网址所有图片的方法
2015/08/08 Python
python日期时间转为字符串或者格式化输出的实例
2018/05/29 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
职业生涯规划书范文
2014/03/10 职场文书
什么是就业协议书
2014/04/17 职场文书
汽车维修求职信
2014/06/15 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
党章学习心得体会2016
2016/01/14 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
php访问对象中的成员的实例方法
2021/11/17 PHP