重新定义$(jQuery)的值

Adi*_*ngh 0 jquery

我创建了自定义函数,函数名称为$.

function $(){
    alert("Test");
}

jQuery(function(){
    alert($);
});
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我在警报中获取了函数体.但是,当我调试此代码时,在保持alert($)浏览器(Chrome)中的断点时,我也会alert("Test")在函数体之前得到.

JSFiddle上可以重现相同的行为.

有人可以解释这种行为吗?

在此输入图像描述

mis*_*hik 5

你有一个名为的函数$.在执行时,alert($)您实际上是在告诉浏览器在警报窗口中显示函数$.$这里不具体,同样适用于abc功能:

function abc(){
    alert("Test");
}
jQuery(function(){
    alert(abc);
});
Run Code Online (Sandbox Code Playgroud)

如果这样做:

function abc(){
    alert("Test");
}
jQuery(function(){
    alert(abc());
});
Run Code Online (Sandbox Code Playgroud)

它将首先运行abc()并显示"Test",然后它将显示结果abc(),即undefined.