您的位置:首页 > Web前端 > JavaScript

让js中的函数只有一次有效调用的三种常用方法

2017-09-12 20:50 881 查看
  如何让js中的函数只被执行一次?我们有时候会有这种需求,即让一个函数只执行一次,第二次调用不会返回任何有价值的值,也不会报错。下面将通过三个小demo展示使用的方法,当做个人笔记。

1.通过闭包来实现。

<script>
window.onload = function () {

function once(fn) {
var result;

return  function() {
if(fn) {
result = fn.apply(this, arguments);
fn = null;
}
return result;
};
}

var callOnce = once(function() {
console.log('javascript');
});

callOnce(); // javascript
callOnce(); // null
}
</script>


2.第一次调用后,把func函数值空。func= function(){};

 

<script>
var func = function () {
alert("正常调用");
func= function(){};
}
func();
func();
</script>


 

3.设置一个值,通过boolean来控制后面的调用。flag

 

<script>
window.onload = function () {
var flag = true;

function once() {
if (flag) {
alert("我被调用");
flag = false;
} else {
return;
}
}
once();
once();
}
</script>


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: