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函数代码
Apr 17 Javascript
js调用iframe实现打印页面内容的方法
Mar 04 Javascript
点击标签切换和自动切换DIV选项卡
Aug 10 Javascript
js实现用户注册协议倒计时的方法
Jan 21 Javascript
jQuery表格插件datatables用法汇总
Mar 29 Javascript
Node.js 中使用 async 函数的方法
Nov 20 Javascript
Vue实现点击时间获取时间段查询功能
Aug 21 Javascript
Node.js搭建WEB服务器的示例代码
Aug 15 Javascript
vue-cli 目录结构详细讲解总结
Jan 15 Javascript
为vue项目自动设置请求状态的配置方法
Jun 09 Javascript
微信小程序用户盒子、宫格列表的实现
Jul 01 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
Oct 29 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代码运行时间查看类代码分享
2011/08/06 PHP
PHP中的Memcache详解
2014/04/05 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
从阶乘函数对比Javascript和C#的异同
2012/05/31 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
Angular 4.X开发实践中的踩坑小结
2017/07/04 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
node.js文件操作系统实例详解
2019/11/05 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
python调用java模块SmartXLS和jpype修改excel文件的方法
2015/04/28 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
python中copy()与deepcopy()的区别小结
2018/08/03 Python
浅谈Python中(&,|)和(and,or)之间的区别
2019/08/07 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
python用requests实现http请求代码实例
2019/10/31 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
如何基于python实现不邻接植花
2020/05/01 Python
python简单实现9宫格图片实例
2020/09/03 Python
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
建筑班组长岗位职责
2014/01/02 职场文书
捐资助学倡议书
2014/04/15 职场文书
文明美德伴我成长演讲稿
2014/05/12 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
端午节寄语2015
2015/03/23 职场文书
小学家长意见怎么写
2015/06/03 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电