我是靠谱客的博主 俊逸蜡烛,最近开发中收集的这篇文章主要介绍js——键盘点击事件 闭包函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

键盘点击事件


document.onkeypress=function(ev){
var e=ev||window.event;
console.log(e.keyCode); // 获取所点击的ASC码
}

闭包函数
概念:

密闭的容器,类似 Set、Map 容器
闭包是一个对象,储存数据格式:value:key

形成:

函数嵌套
内部函数引用外部函数的局部变量

特点:

优点:延长外部函数局部变量的生命周期
缺点:容易造成内存泄漏

原因:

fn1 内的变量按理在函数执行完成应该被销毁,但其被 fn1 内 return 的 fn2 所引用,导致始终无法释放内存,所以 fn1 的变量还能保持其状态,这也是大量使用闭包导致内存泄漏的原因

注意点:

合理使用闭包
用完闭包要及时销毁

作用:
1、外部引用局部变量:


function f1() {
let name = 'lucy'
function f2() {
console.log(name);
}
return f2()
}
f1() // lucy

2、封闭作用域——小闭包(自调用,不外调):(function(){})();

避免同名影响


//两个 age 互不影响
(function(){
var age=18;
console.log(age); // 18
})();
(function(){
var age=19;
console.log(age); // 19
})();

3、作用域:由里向外查找,最近原则

优化性能


// 直接从 document 查找不用再上级查找
(function(document){
var test1=document.getElementById('test1');
var test2=document.getElementById('test2');
var test3=document.getElementById('test3');
console.log(test1, test2, test3);// <div id="test1"></div>
<div id="test2"></div>
<div id="test3"></div>
})(document);
<div id="test1"></div>
<div id="test2"></div>
<div id="test3"></div>

4、参数传递


function test(x){
return function(y){
console.log(x+y);
}
}
test(10)(15);//25

5、闭包节流


function throttle(fn, delay) {
var timer=null;
return function () {
clearInterval(timer);
timer=setInterval(fn,delay);
}
}
window.onresize=throttle(function () {
console.log(1);
},10);

最后

以上就是俊逸蜡烛为你收集整理的js——键盘点击事件 闭包函数的全部内容,希望文章能够帮你解决js——键盘点击事件 闭包函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部