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 相关文章推荐
GreyBox技术总结(转)
Nov 23 Javascript
JavaScript中的eval()函数使用介绍
Dec 31 Javascript
jQuery中hover方法和toggle方法使用指南
Feb 27 Javascript
最简单的JavaScript图片轮播代码(两种方法)
Dec 18 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
Apr 29 Javascript
轻松理解JavaScript闭包
Mar 14 Javascript
微信小程序解除10个请求并发限制
Dec 18 Javascript
JavaScript动态创建二维数组的方法示例
Feb 01 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
Oct 11 Javascript
JavaScript使用prototype属性实现继承操作示例
May 22 Javascript
Openlayers实现距离面积测量
Sep 28 Javascript
Vue中正确使用Element-UI组件的方法实例
Oct 13 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
php 生成唯一id的几种解决方法
2013/03/08 PHP
php curl模拟post请求小实例
2013/11/13 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
2015/12/02 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
JavaScript 函数模式详解及示例
2016/09/07 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
[05:59]2018DOTA2国际邀请赛寻真——只为胜利的Secret
2018/08/13 DOTA
python中的编码知识整理汇总
2016/01/26 Python
学习python的前途 python挣钱
2019/02/27 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
教育学专业实习生的自我鉴定
2013/11/26 职场文书
机电一体化自荐信
2013/12/10 职场文书
会计系中文个人求职信
2013/12/24 职场文书
大队干部竞选演讲稿
2014/04/28 职场文书
初中优秀学生评语
2014/12/29 职场文书
家长对孩子的寒假评语
2015/10/09 职场文书
常用的Python代码调试工具总结
2021/06/23 Python