call 和apply都是为了改变当前对象的this指针。传入第一个是一个对象也是this指针,第二个是参数。
<script>
var func=new function(){this.a="func"}
var myfunc=function(x){
var a="myfunc";
alert(this.a);
alert(x);
}
myfunc.call(func,"var");
</script>
func
var
防止抖动js
- // 取自 UnderscoreJS 实用框架
- function debounce(func, wait, immediate) {
- var timeout;
- return function() {
- var context = this, args = arguments;
- var later = function() {
- timeout = null;
- if (!immediate) func.apply(context, args);
- };
- var callNow = immediate && !timeout;
- clearTimeout(timeout);
- timeout = setTimeout(later, wait);
- if (callNow) func.apply(context, args);
- };
- }
- // 添加resize的回调函数,但是只允许它每300毫秒执行一次
- window.addEventListener('resize', debounce(function(event) {
- // 这里写resize过程
- }, 300));
posted on
浙公网安备 33010602011771号