[英]Persistence with Callbacks | Object Properties vs. Function Parameters
我注意到我在代码中一直在使用-可以互换和随机使用。 特别是,当我有一个回调并且函数被“回调”时,我需要一个值来保留。 使用传递的参数还是静态参数都重要吗? 静态是指函数对象的属性。 我在用这个词。 这是我正在处理的示例。
message_object.display( type );
document.getElementById( 'po_but_cov' ).style.display='inline';
pos = 30;
MC.MATweet.movePane.dir = 'down';
MC.MATweet.movePane( pane_element, pos );
return o_p;
},
movePane: function( pane_element, pos ) {
if( ( MC.MATweet.movePane.dir === 'down' ) && ( pos < 70 ) ) {
pos += 1;
pane_element.style.top = ( pos ) + 'px';
setTimeout( function( ){ MC.MATweet.movePane( pane_element, pos ); }, 1 );
}
else if( ( MC.MATweet.movePane.dir === 'down' ) && pos === 70 ) {
MC.MATweet.movePane.dir = 'up';
setTimeout( function( ){ MC.MATweet.movePane( pane_element, pos ); }, 2000 );
}
else if( ( MC.MATweet.movePane.dir === 'up' ) && ( pos > 30 ) ) {
pos -= 1;
pane_element.style.top = ( pos ) + 'px';
setTimeout( function( ){ MC.MATweet.movePane( pane_element, pos ); }, 1 );
}
else if( ( MC.MATweet.movePane.dir === 'up' ) && ( pos === 30 ) ) {
document.getElementById( 'po_but_cov' ).style.display='none';
}
},
如您所见,我将pos
用作传递的参数,并将MC.MATweet.movePane.dir
用作静态参数。 在设置的时间量后调用该函数时,我都需要可用。
我想使代码风格更加一致。 出于某种原因,更改更多的值pos
作为参数传递,而更改仅一次的值MC.MATweet.movePane.dir
用作静态变量。 不要认为这是相关的,只是反思。
我如何才能更加一致? 选择哪一个有关系吗?
仅供参考,此代码只是对一个盒子进行动画处理,将其向下移动,暂停并向上移动。
现在先介绍简单的参数,以便将初始化移到初始函数调用中。
结果代码:
message_object.display( type );
document.getElementById( 'po_but_cov' ).style.display='inline';
MC.MATweet.movePane( pane_element, 30, 'down' );
return o_p;
},
movePane: function( pane_element, pos, dir ) {
if( ( dir === 'down' ) && ( pos < 70 ) ) {
pos += 1;
pane_element.style.top = ( pos ) + 'px';
setTimeout( function( ){ MC.MATweet.movePane( pane_element, pos, dir ); }, 1 );
}
else if( ( dir === 'down' ) && pos === 70 ) {
dir = 'up';
setTimeout( function( ){ MC.MATweet.movePane( pane_element, pos, dir ); }, 2000 );
}
else if( ( dir === 'up' ) && ( pos > 30 ) ) {
pos -= 1;
pane_element.style.top = ( pos ) + 'px';
setTimeout( function( ){ MC.MATweet.movePane( pane_element, pos, dir ); }, 1 );
}
else if( ( dir === 'up' ) && ( pos === 30 ) ) {
document.getElementById( 'po_but_cov' ).style.display='none';
}
},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.