次のコードでは、変数 t と hoverCalled をクロージャ スコープに保持しています。それらを jQuery.data プロパティに保持した場合、パフォーマンスは向上しますか? クロージャ スコープの作成は、パフォーマンスの面で少しコストがかかると聞いたことがあります。ただし、代替案よりも悪いかどうかはわかりません。
hoverDelay = function(hoverIn,hoverOut) {
var t=null;
var hoverCalled=false;
return {
hoverIn:function() {
t = setTimeout(function() {
//$(self).data('hoverCalled',true);
hoverCalled=true;
hoverIn();
}, 500);
$(this).data('timeout', t);
},
hoverOut:function() {
if (hoverCalled){
hoverOut();
hoverCalled=false;
} else {
//var t=$(self).data('timeout');
//clearTimeout($(this).data('timeout'));
t&&clearTimeout(t);
}
}
};
};