js閉包例子—對不同物件實現點贊累加
要點:
1.js中的閉包有兩種,一種是函式模式閉包,此例項就是這個模式,並且一般這種模式會有返回處理函式,需要快取的值,在返回處理函式才能實現快取資料,而延長作用域鏈的作用一半定義的是匿名函式。
2.大部分情況下函式模式閉包有返回值,如有返回值不能直接呼叫,需要接收函式。
3.這裡的點贊物件有四個,他們的記憶體空間不同,所以他們快取的value值是對應的物件的value。
程式碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
ul {
list-style-type: none;
width: 70%;
margin: 100px 300px;
}
li {
float: left;
margin-left: 10px;
}
img {
width: 200px;
height: 180px;
}
input {
margin-left: 30%;
}
</style>
</head>
<body>
<ul>
<li><img src="images/01.jpg"><br/><input type="button" value="贊(0)"></li>
<li><img src="images/02.jpg"><br/><input type="button" value="贊(0)"></li>
<li><img src="images/03.jpg"><br/><input type="button" value="贊(0)"></li>
<li><img src="images/04.jpg"><br/><input type="button" value="贊(0)"></li>
</ul>
<script type="text/javascript">
function myGet(tagName){
return document.getElementsByTagName(tagName);
}
function getValue(){
var value = 1;
return function(){
this.value = "贊(" + (value++) + ")";
// 字串拼接,都是通過 變數將字串分為左右兩個部分
}
}
// 通過閉包緩衝資料,基本上需要閉包緩衝資料,都是通過返回函式的值實現的
var btnObjs = myGet("input");
// 獲取所有的按鈕
for(var i=0; i<btnObjs.length; i++){
btnObjs[i].onclick = getValue();
// getValue()返回值直接是圖片下面的字串
}
// 每個按鈕的記憶體空間位置是不同的,所有他們的對應的閉包的value的快取值也是不一樣的
// 每次點選不同的按鈕,獲取不同的value值,才能實現分開點贊
</script>
</body>
</html>
效果:
相關文章
- js閉包實現排他思想JS
- 用閉包做累加器
- 自定義計數器小技巧!CSS 實現長按點贊累加動畫CSS動畫
- vue實現對文章列表的點贊Vue
- 對JS閉包的理解JS
- 什麼是閉包?舉個例子
- Redis高效實現點贊、取消點贊只需這四步Redis
- js閉包與封閉函式與其他知識點JS函式
- 談談我對js中閉包的理解JS
- 使用js閉包實現可取消的axios請求JSiOS
- JS閉包ClosureJS
- js之閉包(概念、優缺點、應用)JS
- Go 閉包的實現Go
- 微信小程式實現點贊、取消點贊,和多項點選功能微信小程式
- Redis實現點贊功能模組Redis
- 美麗的閉包,在js中實現函式過載JS函式
- android短視訊開發,實現動態點贊出現的點贊動畫Android動畫
- js閉包的理解JS
- js中的閉包JS
- 淺談js閉包JS
- js函式閉包JS函式
- 從這兩道題重新理解,JS的this、作用域、閉包、物件JS物件
- 【閉包概念】關於閉包概念不同解讀——你可以自己理解。
- js閉包及閉包的經典使用場景JS
- 徹底理解閉包實現原理
- JS進擊之路:閉包JS
- 深入理解JS閉包JS
- JS中的 閉包(Closure)JS
- JS作用域與閉包JS
- JS閉包作用域解析JS
- [JS]什麼是閉包?JS
- 什麼是閉包,閉包的優缺點?
- 【20190220】JavaScript-知識點整理:物件建立方式、原型、閉包JavaScript物件原型
- 【JavaSE】java實現閉包與回撥Java
- js閉包簡單總結JS
- JS-閉包(closure)的理解JS
- JS閉包的簡易使用JS
- [譯]理解JS中的閉包JS