js 闭包让函数只执行一次

js 闭包让函数只执行一次

<script>
function once(f) {
    var
run;
    return function()
{
        if (!run)
{
            run =
true;
           
f.apply(this, arguments);
       
}
    }
}
var g = once(function(x)
{
   
alert(x)
});
g(1);
g(2);
g(3); 
</script>

js 闭包让函数只执行一次,布布扣,bubuko.com

时间: 2024-10-10 06:26:27

js 闭包让函数只执行一次的相关文章

函数只执行一次,若再执行,直接返回上次的结果

var once = (function(){ var res = {}, i = 0 ; return function(func){ if(typeof(func) != 'function'){ alert('参数类型不正确'); return false; } for(var j in res){ if( res[j].fn === func ){ console.dir('read from cache...'); return res[j].ret; } } return res[i

(function() {})();只执行一次

测试例子: var xx = (function() { (function() { alert(9) })(); alert(10) return "yyyy"; })(); 调用: alert(xx); 在调用的时候,你会发现只弹出"yyyy"信息,并不见弹出"10"的信息!这也就是说,这个匿名函数只在立即调用的时候执行一次,这时它已经赋予了给xx变量,也就是只是把在初始化的立即调用的结果保存起来. 看运行测试: 立即调用时,9.10信息都弹

js每隔5分钟执行一次ajax请求的实现方法

个页面好像只能有一个 window.onload=function(){},所以要有多个事件,这样写就好了 window.onload=function(){ //假设这里每个五分钟执行一次test函数 publicBusi(); personBusi(); } function publicBusi(){ setTimeout(personBusi,1000*60*7);//这里的1000表示1秒有1000毫秒,1分钟有60秒,7表示总共7分钟 $.post('${basePath}/appr

selenium+python+unittest:一个类中只执行一次setUpClass和tearDownClass里面的内容(可解决重复打开浏览器和关闭浏览器,或重复登录等问题)

unittest框架是python自带的,所以直接import unittest即可,定义测试类时,父类是unittest.TestCase. 可实现执行测试前置条件.测试后置条件,对比预期结果和实际结果,检查程序的状态,生成测试报告. 且断言的话unittest框架很方便. 在这主要记录下setUp()和tearDown()这两个的问题,每次执行一个测试用例(test开头的方法),就会执行一次setUp()和tearDown(), 导致执行多个测试用例时,会反复的打开浏览器操作,这个很浪费时间

js scroll 滚动连续多次触发事件只执行一次

(function() { var finished = true; function loadData() { //xxxx finished = true; } dom.onscroll = function() { if(finished && this.scrollHeight - this.clientHeight == this.scrollTop) { finished = false; loadData(); } } })();

js 闭包 匿名函数 JavaScript的IIFE(即时执行方法)immediately-invoked function expression

参考:http://segmentfault.com/a/1190000000348228 http://segmentfault.com/q/1010000000442042 问题: (function(){ function a(){ alert("a"); } })();这里的(function(){xxx})(); 是什么意思,为什么这么写,有什么好处?答: function foo() {...} // 这是定义,Declaration:定义只是让解释器知道其存在,但是不会运

防暴力点击,一定时间内多次点击只执行一次

data() { return { clickDelay: false, } }, //1秒内点击多次只执行一次 previeWxArticle(item) { let _this = this; if(_this.clickDelay) return; _this.clickDelay = !_this.clickDelay; api.request("previeWxArticle", { 'url': item.articleUrl,'linkId': item.linkId }

保证某段代码在程序的生命周期内只执行一次

static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ //要执行的代码 });

控制元素的点击执行事件只执行一次

if(e.handled !== true){ } e.handled=true; function(e) 完整例子: $('.shoucangtitlele').click(function(e){                if(e.handled !== true){                    var data = $(this).attr('data');                    alert(data);                    if(data