javascript 之封装技巧
2024-10-17 21:19:11
- 技术--- 闭包
javascript中的对象属性都是公开的,外界都可访问到,例:
function cat(){
this.name = '猫';
this.climb = function(){
alert('我会爬树!');
}
}
var boshi = new cat();
alert(boshi.name);
boshi.climb();
cat对象中被实例化,name属性和climb方法都能被直接调用,没有被私有,但是我们可以用闭包模拟封装
function cat(){
var age = 28;
this.name = '猫';
this.climb = function(){
alert('我会爬树!');
}
this.tellage = function(addage){
return '我一般告诉别人年龄是'+(age+addage);
}
}
var boshi = new cat();
alert(boshi.name);
alert(boshi.age); //由于age是局部变量,所以访问不了
alert(boshi.tellage(-10)); //tellage方法是个模拟开放接口,开放年龄
这里的age就可模拟成一个私有属性,运用闭包(指在一个函数内定义的局部变量,被此函数内定义子函数所调用,也就是子函数访问上级函数定义的变量)可模拟封装,当然封装私有方法也可以的。
最新文章
- HDU 5446 中国剩余定理+lucas
- Aspx生命周期
- 廖雪峰js教程笔记 2
- NSISの堆栈操作
- 【bzoj1053】反素数
- SQL Server 数据库初始化准备脚本
- python模拟Get请求保存网易歌曲的url
- cmake手册详解----转
- Laravel 5.2 教程 - 邮件
- Primavera——免费版本的下载和使用
- Pandas 使用笔记
- Redis入门指南之二(安装及配置)
- ASP.NET MVC 导入Excel文件
- jedisClient操作redis实现增删改查功能
- BZOJ.2462.[BeiJing2011]矩阵模板(二维Hash)
- 对于多个button要在同一个监听器中实现自己的单击事件的方法小诀窍。
- spring boot上传 下载图片。
- 分享一个经验,代码打开mysql链接,执行存储过程时,提示:Table 'mysql.proc' doesn't exist
- Android6.0------权限管理
- 电子相册之bitmap
热门文章
- 理解iPhone高清分辨率的问题
- [codevs1554]最佳课题选择
- Java笔记(八)……数组
- 五指cms安装说明
- uvalive 7331 Hovering Hornet 半平面交+概率期望
- cloudstack安装篇3-SELinux配置、NTP时间同步、配置ClouStack软件库
- HW4.4
- .NET Compact Framework Data Provider for SQL Server CE
- Spark RDD概念学习系列之RDD的容错机制(十七)
- linux定时器用法