jQuery 返回窗口对象
jQuery returns window object
这是一个非常愚蠢的问题,但对于我的生活,我无法理解:
为什么$(button).addClass('focus')
返回 DOMNodes
但
(button.addClass || $(button).addClass)('focus')
返回Window
对象?
编辑:这是否与JavaScript间接调用有关,例如:(1, alert)('test')
?
jQuery函数可以链接。这是通过将return this;
置于其功能的末尾来完成的。
但是,当您执行(button.addClass || $(button).addClass)('focus')
时,您将取消引用该函数,并且其上下文将丢失。 window
是默认上下文(除非您处于严格模式,在这种情况下,我认为它是null
(但作为非严格模式用户,我不确定)),这就是您取回Window
的原因。
此外,任何链接此函数的尝试都将失败。
你本质上在做的是这样的:
var fn;
if (button.addClass)
fn = button.addClass;
else
fn = $(button).addClass;
fn('focus');
因此,您将丢失对按钮或 $(按钮) 的引用。
相关文章:
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何在选项卡上定义属性'的主窗口对象
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 可以从Chrome扩展修改窗口对象吗
- 在Backbone.js中为窗口对象指定变量
- 从html锚元素传递窗口对象
- 如何在ReactJS中使用窗口对象
- 在angularJS中使用模态窗口时,在控制器之间共享对象数组
- HackReactor,编码窗口现在可以访问一个名为“”的对象;招生;使用名为“;showApp”;.调用此方法时不带任
- 在加载时调用时,窗口对象的某些变量丢失
- 是否可以模拟 qUnit 测试的窗口位置对象
- 清除 Javascript 中窗口对象中的自定义变量
- 为什么当我尝试将函数绑定到自身时,“this”对象仍然引用窗口
- 窗口对象属性返回一个dom节点
- 使用窗口对象练习我的对象文字函数
- 如何从Chrome扩展访问所有窗口对象
- “this”返回的是[对象窗口],而不是元素
- 将变量打印到控制台时出现意外字符串:[对象窗口]
- 当我提醒“;这个“;鼠标悬停在<td>[对象窗口]弹出-那是什么
- javascript[对象窗口]在一个concat字符串