javascript入门基础之私有变量
作者:bea
先看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的类用法
先看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声明的变量和方法,但外部可以通过公有方法为桥梁实现与私有变量交互
建议:为了便于阅读与区分,私有变量和方法在命名前加一个或者两个下划线。
有用 | 无用
代码如下:
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声明的变量和方法,但外部可以通过公有方法为桥梁实现与私有变量交互
建议:为了便于阅读与区分,私有变量和方法在命名前加一个或者两个下划线。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- jquery1.4 教程一 便利的设置函数
- jquery 1.4.2发布!主要是性能与API
- jQuery 方法大全方便学习参考
- js 面向对象的技术创建高级 Web 应用程序
- javascript 命名规则 变量命名规则
- js 表格拖拽效果实例代码 (IE only)
- javascript for循环设法提高性能
- 判断控件是否已加载完成的代码
- json-lib出现There is a cycle in the hierarchy解决办法
- ext combox 下拉框不出现自动提示,自动选中的解决方法
- javascript Firefox与IE 替换节点的方法
- jQuery 性能优化手册 推荐
- jquery实现的超出屏幕时把固定层变为定位层的代码
- JSON 学习之JSON in JavaScript详细使用说明
- js下用层来实现select的title提示属性
- Jquery+CSS 创建流动导航菜单 Fluid Navigation
- jquery 锁定弹出层实现代码
- javascript document.compatMode兼容性
- js操作ajax返回的json的注意问题!