javascript 之封装技巧
- 技术--- 闭包
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就可模拟成一个私有属性,运用闭包(指在一个函数内定义的局部变量,被此函数内定义子函数所调用,也就是子函数访问上级函数定义的变量)可模拟封装,当然封装私有方法也可以的。
javascript 之封装技巧的更多相关文章
- 2016/11/17 周四 <javascript的封装简单示例>
这是一个简单的javascript代码封装的示例以及封装后的调用方法: var ticker={ n:0, add:function() { this.n++; }, show:function() ...
- 12个实用的 Javascript 奇淫技巧
这里分享12个实用的 Javascript 奇淫技巧.JavaScript自1995年诞生以来已过去了16个年头,如今全世界无数的网页在依靠她完成各种关键任务,JavaScript曾在Tiobe发布的 ...
- 第一百三十五节,JavaScript,封装库--拖拽
JavaScript,封装库--拖拽 封装库新增1个拖拽方法 /** tuo_zhuai()方法,将一个弹窗元素实现拖拽功能 * 注意:一般需要在css文件将元素里的某一个区块光标设置成提示可以拖拽, ...
- 第一百三十四节,JavaScript,封装库--遮罩锁屏
JavaScript,封装库--遮罩锁屏 封装库新增1个方法 /** zhe_zhao_suo_ping()方法,将一个区块元素设置成遮罩锁屏区块 * 注意:一般需要在css文件将元素设置成隐藏 ** ...
- 第一百三十三节,JavaScript,封装库--弹出登录框
JavaScript,封装库--弹出登录框 封装库,增加了两个方法 yuan_su_ju_zhong()方法,将获取到的区块元素居中到页面,chuang_kou_shi_jian()方法,浏览器窗口事 ...
- 第一百三十二节,JavaScript,封装库--下拉菜单
JavaScript,封装库--下拉菜单 封装库,增加了3个方法 shu_biao_yi_ru_yi_chu()方法,给元素设置鼠标移入移出事件,接收两个参数,参数是移入和移出时的执行函数(包含代码) ...
- 第一百三十一节,JavaScript,封装库--CSS
JavaScript,封装库--CSS 将封装库里的方法,改成了原型添加方法 增加4个方法 tian_jia_class()方法,给获取到的元素添加class属性,参数是class属性值,可以连缀1 ...
- 第一百三十节,JavaScript,封装库--连缀
JavaScript,封装库--连缀 学习要点: 1.连缀介绍 2.改写库对象 本章我们重点来介绍,在调用库的时候,我们需要能够在前台调用的时候可以同时设置多个操作,比如设置CSS,设置innerHT ...
- Openlayer3之C++接口在javaScript的封装使用
0.写在前面: 1)涉及的关键词定义: 传入:JavaScript向CAPI传值 传出:CAPI向JavaScript传值 2)关于类和结构体的封装,需要严格执行内存对齐,以防止读取越界,但是避免不了 ...
随机推荐
- lightoj 1012
水题,dfs #include<cstdio> #include<string> #include<cstring> #include<iostream> ...
- centos解决ping unknown host的问题
当ping www.baidu.com 的时候如果出现 unknown host的提示 再ping一下IP, ping 8.8.8.8 如果此时能ping通,那么就是DNS服务器没有设置,不能解析域名 ...
- NOIP 2015 子串
借鉴大神思路... #include<cstdio> #include<cstring> #include<cstdlib> #include<iostrea ...
- Java中String是“引用”传递
如题,在java中这是一个典型的问题. 在stackoverflow上已经有很多相似的问题被提问,并且有很多不正确或不完整的答案.如果你不往深处想,这是一个很简单的问题.但如果深入思考,它却很让人迷惑 ...
- Nyoj42 一笔画问题 (欧拉道路)
http://acm.nyist.net/JudgeOnline/problem.php?pid=42题目链接 #include <cstdio> #include <cstring ...
- POJ2184Cow Exhibition (01背包变形)
思路一下子就想到了,转移方程却没想好,看到网上一个的思路相同的代码,改的转移方程. 同时dp全部初始化为负无穷,需要注意一下. AC代码如下: /*************************** ...
- storm的功能、三大应用
storm的功能 Storm 有许多应用领域:实时分析.在线机器学习.持续计算.分布式 RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务). ETL(Extraction-Transfo ...
- 问题-Error creating object. Please verify that the Microsoft Data Access Components 2.1(or later) have been properly installed.
问题现象:软件在启动时报如下错误信息:Exception Exception in module zhujiangguanjia.exe at 001da37f. Error creating obj ...
- 关键在封装并发出了帧-IP冲突也无所谓
最近有点走火入魔了!本文所用技术非标准,较真儿者慎入!! 一个局域网内,两台机器拥有同样的IP,可以吗? 这不就是IP地址冲突吗?当然不行! 可是要知道,如果搞点旁门左道,还是可以做到的! 首先要明白 ...
- 微软的.NET示例代码放在Github上了
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:微软的.NET示例代码放在Github上了.