js基础(闭包实例)
2024-08-24 03:29:11
1,常用发送短信的闭包实现:
function sms() {
var count = 60;
return {
start: function() {
if(count == 0) {
count = 60;
document.getElementById("time").innerHTML = count;
return;
} else {
document.getElementById("time").innerHTML = count;
count--;
}
var that = this;
setTimeout(function() {
that.start();
}, 1000)
},
stop: function() {
count = 60;
}
}
}
var sms = sms();
sms.start();
2,匿名自执行函数
var data= {
msg: "Helloween "
};
(function(dm){
console.info(dm.msg)
})(data);
3,封装
var person = function(){
//变量作用域为函数内部,外部无法访问
var name = "default"; return {
getName : function(){
return name;
},
setName : function(newName){
name = newName;
}
}
}(); print(person.name);//直接访问,结果为undefined
print(person.getName());
person.setName("abruzzi");
print(person.getName());
4,实现类和继承
function Person(){
var name = "default"; return {
getName : function(){
return name;
},
setName : function(newName){
name = newName;
}
}
}; var p = new Person();
p.setName("Tom");
alert(p.getName());
var Jack = function(){};
//继承自Person
Jack.prototype = new Person();
//添加私有方法
Jack.prototype.Say = function(){
alert("Hello,my name is Jack");
};
var j = new Jack();
j.setName("Jack");
j.Say();
alert(j.getName());
最新文章
- windows 2012 r2 can't find kb2919355
- C#之接口
- 【转】真正从零开始,TensorFlow详细安装入门图文教程!(帮你完成那个最难的从0到1)
- Glassfish在SpringMVC服务端接收请求时字符出现乱码的解决办法
- Chrome开发者工具不完全指南(二、进阶篇)
- Amazon SQS简单介绍 上篇
- ACdreamoj(1105)模拟题
- angularjs的懒加载
- 【Python3爬虫】常见反爬虫措施及解决办法(三)
- FortiGate日志中session clash
- [leetcode]24. Swap Nodes in Pairs交换节点对
- python ctrl+c
- Python sys.md
- Delphi应用程序的调试(六)步进式代码调试
- selenium webdriver testng自动化测试数据驱动
- file-loader 与 url-loader 的区别
- SpringCloud统一配置之使用配置
- 【刷题】BZOJ 1061 [Noi2008]志愿者招募
- JavaWeb中监听器
- 解决ssh_exchange_identification:read connection reset by peer 原因