javascript - JS中关于随机生成颜色中的闭包问题
本文介绍了javascript - JS中关于随机生成颜色中的闭包问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
var getRandomColor = function() {
return '#' + (function(color) {
return new Array(7 - color.length).join("0") + color
})((Math.random() * 0x1000000 << 0).toString(16))
}
var getRandomColor = function (){
var color = (Math.random() * 0x1000000 << 0).toString(16);
return '#'+ new Array(7 - color.length).join("0") + color;
};
想知道为什么要用闭包实现补0位,用第二种有什么不好的地方吗?
解决方案
简单看了下,这段代码里用闭包来实现补位,其实应该只是为了实现函数自身的洁净,让函数更加独立,内敛。
再简单点来说就是为了完全隔绝外部联系,成为纯粹的函数。
另外从这个函数的功能上来讲,能够直接导出,没必要在函数内部特意声明一个局部变量占用内存,即使在执行
完毕后就失效。
这篇关于javascript - JS中关于随机生成颜色中的闭包问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文