javascript 之封装技巧

本文通过实例展示了如何利用闭包技术在JavaScript中模拟对象属性的封装,避免了直接暴露私有变量,增强了代码的安全性和灵活性。
  • 技术--- 闭包

javascript中的对象属性都是公开的,外界都可访问到,例:

1 function cat(){
2     this.name = '猫';
3     this.climb = function(){
4         alert('我会爬树!');    
5     }
6 }
7 var boshi = new cat();
8 alert(boshi.name);
9 boshi.climb();

cat对象中被实例化,name属性和climb方法都能被直接调用,没有被私有,但是我们可以用闭包模拟封装

 1 function cat(){
 2     var age = 28;
 3     this.name = '猫';
 4     this.climb = function(){
 5         alert('我会爬树!');    
 6     }
 7     this.tellage = function(addage){
 8         return '我一般告诉别人年龄是'+(age+addage);
 9     }
10 }
11 var boshi = new cat();
12 alert(boshi.name);
13 alert(boshi.age);        //由于age是局部变量,所以访问不了
14 alert(boshi.tellage(-10));    //tellage方法是个模拟开放接口,开放年龄

这里的age就可模拟成一个私有属性,运用闭包(指在一个函数内定义的局部变量,被此函数内定义子函数所调用,也就是子函数访问上级函数定义的变量)可模拟封装,当然封装私有方法也可以的。

转载于:https://www.cnblogs.com/kewang10086/p/3658114.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值