- 主题:怎样才能写出这样精巧的函数啊,
var arr = [];
for (var i = 1; i <= 1000; i++) {
arr.push(i);
};
var timeChunk = function(arr, fn, count) {
var obj, t;
var len = arr.length;
var start = function() {
for (var i = 0; i < Math.min(count || 1, arr.length); i++) {
var obj = arr.shift();
fn(obj);
};
};
return function() {
t = setInterval(function() {
if (arr.length === 0) {
return clearInterval(t);
};
start();
}, 200);
};
};
var renderFriendList = timeChunk(arr, function(n) {
var div = document.createElement('div');
div.innerHTML = n;
document.body.appendChild(div);
}, 8);
renderFriendList();
我写的函数属于一眼望穿型,一点都不高大上。
虽然这样可以说是明白易懂,但同时也意味着low啊。
这个函数写得非常巧妙啊,怎样才能写出这样的函数?
有没有什么窍门?
--
FROM 61.183.136.*
没看明白哪里巧妙了。是指回调函数的使用吗?
【 在 xiatianup (李 ,只是期待夏天!!) 的大作中提到: 】
: var arr = [];
: for (var i = 1; i <= 1000; i++) {
: arr.push(i);
: ...................
--
FROM 125.78.75.*
没看出哪好来
【 在 xiatianup (李 ,只是期待夏天!!) 的大作中提到: 】
: var arr = [];
: for (var i = 1; i <= 1000; i++) {
: arr.push(i);
: ...................
--
FROM 124.202.170.*
没见过 closure?
【 在 xiatianup (李 ,只是期待夏天!!) 的大作中提到: 】
: var arr = [];
: for (var i = 1; i <= 1000; i++) {
: arr.push(i);
: ...................
--
FROM 101.98.83.*
1.实现同样的功能
2. 性能基本没差,甚至略差。
在这两个前提下,代码越容易看懂越好。
代码当如白居易
【 在 xiatianup 的大作中提到: 】
: var arr = [];
: for (var i = 1; i <= 1000; i++) {
: arr.push(i);
: ...................
--
FROM 111.202.103.*
好歹也是前端老油条了啊,怎么可能不知道这个。
不过综合来看,感觉组合得还是很巧妙。
不像我,写东西都很直白。。。
【 在 eGust 的大作中提到: 】
: 没见过 closure?
:
--
FROM 61.183.136.*
工程上,明白易懂才是王道,应该让大部分(至少一半吧)代码第一次看的人能一遍就读明白。
炫技p用没有
【 在 xiatianup 的大作中提到: 】
:
: var arr = [];
: for (var i = 1; i arr.push(i);
: };
: var timeChunk = function(arr, fn, count) {
--
FROM 123.125.37.*
用小学方法解大学题 和 用研究生方法 哪个更牛?
【 在 xiatianup (李 ,只是期待夏天!!) 的大作中提到: 】
: var arr = [];
: for (var i = 1; i <= 1000; i++) {
: arr.push(i);
: ...................
--
FROM 183.95.135.*
在可能的情况下,就应该是越简单越好,这个写的啰嗦,性能也不好,基本的减少触发重绘优化都没有做到。
--
FROM 218.20.212.*
你的代码写的通俗易懂很好啊。试着把你的代码处理成了抽象派作品,明显艺术风格发生了改变。
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('2 3=[];f(2 i=1;i<=h;i++){3.j(i)};2 9=4(3,a,d){2 7,t;2 l=3.6;2 c=4(){f(2 i=0;i<o.m(d||1,3.6);i++){2 7=3.p();a(7)}};b 4(){t=k(4(){w(3.6===0){b x(t)};c()},r)}};2 g=9(3,4(n){2 5=e.q(\'5\');5.s=n;e.v.u(5)},8);g();',34,34,'||var|arr|function|div|length|obj||timeChunk|fn|return|start|count|document|for|renderFriendList|1000||push|setInterval|len|min||Math|shift|createElement|200|innerHTML||appendChild|body|if|clearInterval'.split('|'),0,{}))
【 在 xiatianup (李 ,只是期待夏天!!) 的大作中提到: 】
: var arr = [];
: for (var i = 1; i <= 1000; i++) {
: arr.push(i);
: ...................
--
FROM 134.159.152.*