[Javascript] Object.freeze: using Object.freeze in function params to enforce immutabtility
JavaScript to in object Using Function params
2023-09-14 09:00:45 时间
function lotteryNum() {
return (Math.round(Math.random() * 100) % 58) + 1;
}
function recordNumber(luckLotteryNumbers: readonly number[], num: number): number[] {
let numbers: number[] = luckLotteryNumbers.slice();
if (!luckLotteryNumbers.includes(num)) {
numbers = [
...numbers,
num
].sort((x, y) => x - y)
}
return numbers;
}
let luckLotteryNumbers: number[] = [];
while(luckLotteryNumbers.length < 6) {
luckLotteryNumbers = recordNumber(Object.freeze(luckLotteryNumbers), lotteryNum())
}
console.log(luckLotteryNumbers)
For following code, it enforce the luckLotteryNumber
should not be changed, and telling the co-workers, it is immutable, enforce immtuable code
luckLotteryNumbers = recordNumber(Object.freeze(luckLotteryNumbers), lotteryNum())
相关文章
- JavaScript : 获取文件名后缀
- [Functional Programming] Use a Javascript Array to Construct a Maybe
- [ES2019] Use JavaScript ES2019 flatMap to Map and Filter an Array
- [Testing] Config jest to test Javascript Application -- Part 2
- [WASM Rust] Use the js-sys Crate to Invoke Global APIs Available in Any JavaScript Environment
- [Poi] Use Poi to Build an Index.js with Modern JavaScript Features
- [Javascript] Compose multiple functions for new behavior in JavaScript
- [WASM] Write to WebAssembly Memory from JavaScript
- [Javascript] Different ways to create an new array/object based on existing array/object
- [Javascript] Introduce to Webpack
- [Javascript] Broadcaster + Operator + Listener pattern -- 27. combine multi broadcaster and compose operator to implement game logic
- [Javascript] Broadcaster + Operator + Listener pattern -- 10. Define a Function to Set Common Behaviors in Operators
- [Algorithms] Sort an Array with a Nested for Loop using Insertion Sort in JavaScript
- [WASM Rust] Use the js-sys Crate to Invoke Global APIs Available in Any JavaScript Environment
- [Javascript] Link to Other Objects through the JavaScript Prototype Chain
- [Javascript] Use Number() to convert to Number if possilbe
- [Immutable.js] Using fromJS() to Convert Plain JavaScript Objects into Immutable Data
- [Whole Web] [AngularJS + Grunt] Using ng-html2js to Convert Templates into JavaScript
- 简单理解Javascript中的call 和 apply
- Javascript中的几种继承方式比较
- atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97