如何在运行时找到变量的定义?

Mat*_*all 11 javascript shadowing

直到最近,我一直在使用jQuery和YUI并没有问题.有时候,在YUI按钮的回调中,$会被其他一些函数遮蔽(点击查看大版本): 安慰

而对于我的生活,我无法弄清楚为什么会这样.是的,我知道我可以安全使用jQuerywindow.$在任何地方而不仅仅是$,但这只是一种解决方法,而不是一个实际的修复.

在运行时,我怎样才能找到这个$冒名顶替者的来源? - 例如找到它声明的位置,以及为什么它在我的bleedin范围内.


事实证明,这种行为很容易在Stack Overflow上重现(至少在Chrome和Firefox 4中),因为SO使用jQuery(再次点击查看完整大小):

更多控制台 更多的控制台

我只能推断$

function () {
    return document.getElementById.apply(document, arguments)
}
Run Code Online (Sandbox Code Playgroud)

必须来自控制台本身!

找到了.

with 再次罢工.

在此输入图像描述 在此输入图像描述

Chromium bug:http://code.google.com/p/chromium/issues/detail?id = 70969

ano*_*non 2

我敢打赌这不会发生在 IE 中?这是我能找到的唯一提示:

http://davidwalsh.name/dollar-functions

http://dam5s.tumblr.com/post/3079779011/bug-in-chromes-javascript-console

Chrome/Firefox/Safari 中存在某种错误。