Underscore.js是一個JavaScript庫,即使不使用任何內置對象,它也提供了許多有用的函數,例如Map,過濾器,調用等。
_.once函數用於隻希望一次執行特定函數的情況。即使我們多次執行或調用此函數,它也不會起作用。原始函數的值隻會在每次調用時返回。它主要用於initialize()函數,這些函數僅用於將初始值分配給變量。
用法:
_.once(function)
參數:
它僅需要一個參數,即僅需要一次調用的函數。
返回值:
每當函數被迭代或重複調用時,它都會返回原始調用的值。
- 使用_.once()函數執行加法函數:
傳遞給_.once()函數的函數會將10加到最初具有10個值的變量10上。然後,_。once()函數被分配給另一個函數“ startFunc()”。然後,第一次調用“ startFunc()”時,將“ a”的值加10並變為20。因此,第一次調用的輸出為20。然後,下次將“ startFunc()”時稱為“ a”的值還是應該再增加10,但這不會發生。這是因為“ startFunc()”在其定義中具有函數“ _.once()”,從而使其無法執行多次。因此,第二個和第三個調用的輸出將與第一個相同,即20。在第一行,在調用“ startFunc()”之前,將打印“ a”的值,因此輸出為10。
Examples:<html> <head> <script src= "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script> </head> <body> <script type="text/javascript"> var a = 10; function add() { a += 10; } var startFunc = _.once(add); console.log(a); startFunc(); console.log(a); startFunc(); console.log(a); startFunc(); console.log(a); </script> </body> </html>
輸出:
- 使用_.once()函數執行乘法運算:
傳遞給_.once()函數的函數將變量“ a”乘以10,該變量“ a”的初始值為10。然後,_。once()函數被分配給另一個函數“ startFunc()”。第一次調用“ startFunc()”時,將“ a”的值乘以10並變為100。因此,第一次調用的輸出為100。然後,下次調用“ startFunc()”時,將“ a”的值設為再次應該再次乘以10,但這不會發生。這是因為“ startFunc()”在其定義中具有函數“ _.once()”,從而使其無法執行多次。因此,第二個和第三個調用的輸出將與第一個相同,即100。在第一行,在調用“ startFunc()”之前將打印“ a”的值,因此輸出為10。<html> <head> <script src= "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script> </head> <body> <script type="text/javascript"> var a = 10; function add() { a *= 10; } var startFunc = _.once(add); console.log(a); startFunc(); console.log(a); startFunc(); console.log(a); startFunc(); console.log(a); </script> </body> </html>
輸出:
- 將字符串傳遞給_.once()函數:
傳遞給_.once()函數的函數會將變量“ a”的原始字符串與其他字符串附加在一起。 _.once()函數已分配給另一個函數“ startFunc()”。第一次調用“ startFunc()”時,“ a”的值會附加到“ append”字符串中,因此變成“xyz appended”。因此,首次調用的輸出為“xyz appended”。然後,下次調用“ startFunc()”時,應該再次附加“ a”的值,但這不會發生。這是因為“ startFunc()”在其定義中具有函數“ _.once()”,從而使其無法執行多次。因此,第二個和第三個調用的輸出將與第一個相同,即“xyz appended”。在第一行中,將在調用“ startFunc()”之前打印“ a”的值,因此輸出為“xyz”。<html> <head> <script src= "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script> </head> <body> <script type="text/javascript"> var a = 'xyz'; function add() { a += " appended "; } var startFunc = _.once(add); console.log(a); startFunc(); console.log(a); startFunc(); console.log(a); startFunc(); console.log(a); </script> </body> </html>
輸出:
- 將數字和字符串都傳遞給_.once()函數:
在這裏,我們對函數執行_.once()函數,該函數既將字符串附加到原始值為“xyz”的變量'a',又將10添加到原始值為5的變量'b'。變量“ a”和“ b”都將顯示。之後,當我們第一次調用“ startFunc()”時,“ a”變量將附加“ append”字符串,並且“ b”變量的值將增加10。因此,“ a”變為“xyz appended”,而“ b”變為15。現在每次使用“ startFunc()”時,“ a”和“ b”的值將保持不變,這與我們在“ startFunc()”的定義中使用_.once()函數相同。<html> <head> <script src= "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script> </head> <body> <script type="text/javascript"> var a = 'xyz', b = 5; function add() { a += " appended "; b += 10; } var startFunc = _.once(add); console.log(a, b); startFunc(); console.log(a, b); startFunc(); console.log(a, b); startFunc(); console.log(a, b); </script> </body> </html>
輸出:
注意:
這些命令在Google控製台或firefox中將無法使用,因為需要添加這些尚未添加的其他文件。
因此,將給定的鏈接添加到您的HTML文件,然後運行它們。
鏈接如下:
<script type="text/javascript" src =
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js">
</script>
相關用法
- p5.js createFileInput()用法及代碼示例
- PHP DOMElement setIdAttributeNS()用法及代碼示例
- PHP DOMElement removeAttribute()用法及代碼示例
- PHP DOMNode C14N()用法及代碼示例
- PHP DOMNamedNodeMap count()用法及代碼示例
- PHP DOMImplementation hasFeature()用法及代碼示例
- PHP DOMElement setAttributeNS()用法及代碼示例
- PHP DOMElement setIdAttributeNode()用法及代碼示例
- PHP DOMElement getAttributeNS()用法及代碼示例
- PHP DOMElement getAttributeNode()用法及代碼示例
注:本文由純淨天空篩選整理自Sakshi98大神的英文原創作品 Underscore.js | _.once()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。