zoukankan      html  css  js  c++  java
  • js基础(闭包实例)

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

      

  • 相关阅读:
    [SCOI2007]降雨量
    [SCOI2005]骑士精神
    LUOGU P1342 请柬
    spfa的复活
    Luogu P2396 yyy loves Maths VII
    Luogu P2801 教主的魔法
    HEOI2012 采花
    USACO05DEC Cleaning Shifts
    CF438D The Child and Sequence
    Codechef October Challenge 2019 Div.2
  • 原文地址:https://www.cnblogs.com/holdon521/p/8952057.html
Copyright © 2011-2022 走看看