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”位,用第二种有什么不好的地方吗?
JS에서 무작위로 생성된 색상의 폐쇄 문제에 대해? -PHP 중국 사이트 Q&A -JS에서 임의로 생성된 색상이 닫히는 문제에 대해? -PHP 중국어 홈페이지 Q&A
꼭 보고 배워보세요.
简单看了下,这段代码里用闭包来实现补位,其实应该只是为了实现函数自身的洁净,让函数更加独立,内敛。再简单点来说就是为了完全隔绝外部联系,成为纯粹的函数。
另外从这个函数的功能上来讲,能够直接导出,没必要在函数内部特意声明一个局部变量占用内存,即使在执行完毕后就失效。