0

当我运行这个简单的功能时,我很感兴趣

$(window).resize(function() {
    var that = $(this);
    var widthValue = that.width();

    console.log(widthValue + 'px');
});

当我开始调整浏览器窗口的大小时,它会起作用。

但是当我这样做时

$(window).resize(function() {
    var that = $(this);
    var widthValue = that.width();

    console.log(widthValue + 'px');
}).resize();

它的行为就像load();. 我resize()在最后加了。

这个叫什么?不确定我是否理解它为什么以及如何工作。

4

2 回答 2

5

该技术称为链接

它归结为this最后返回的函数,因此您可以通过一个接一个地链接方法调用来调用同一对象的另一个方法。

var foo = {
  count: 0,
  up: function () { this.count++; return this; },
  show: function () { alert(this.count); return this; }
}

foo.show().up().show().up().up().show();

在此特定示例中,该resize方法被重载。如果您给它一个函数参数,那么它将将该函数绑定为事件处理程序。如果您不带参数调用它,那么它将触发该事件。

于 2013-10-07T13:47:08.717 回答
0

对于第二种情况,您正在调用或触发resize事件。

于 2013-10-07T13:46:50.620 回答