js基础(闭包实例)

it2022-05-12  47

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());

  

 

转载于:https://www.cnblogs.com/holdon521/p/8952057.html

相关资源:JS闭包的几种常见形式实例详解

最新回复(0)