gpt4 book ai didi

javascript - 'function fName() { }` 和 '$(function fName(){ })' 之间有什么区别,为什么后者有效而前者无效?

转载 作者:行者123 更新时间:2023-11-30 07:39:46 25 4
gpt4 key购买 nike

为了设置场景,我使用了 jQuery。我在另一个答案中读到“某些库 (jQuery) 使用 $ 作为主要基础对象(或函数)”。

这很好,但我感到困惑的是为什么我可以拥有以下内容并且它有效:

$(document).ready(function () {
$(function showPassword () {
//Some code and it works
});
});

但是然后有了这个,它不起作用:

$(document).ready(function () {
function showPassword () {
//Some code and it doesn't work
};
});

所以这一定是我需要创建那个“基础对象”的事实,但我真的可以用外行的术语进行解释,因为这显然是基本原理的一部分。

最后的场景是这样的。我在开头有 $(function showPassword() {,但是里面有另一个函数(function validatePwdStrength () {。对于第二个函数,我不不需要 $( 就可以了。那是因为我之前设置了这个“基础对象”吗?

$(document).ready(function () {
$(function showPassword () {
//Some code and it works
function validatePwdStrength () {
//Some code and it works
}
});
});

注意:根据阅读的内容,我曾多次使用短语“基础对象”,但我并不完全理解它的含义。我读过 jQuery objects但这似乎表明虽然这样做更方便并且兼容性更好,但没有它它仍然可以工作。所以我可能遗漏了一些东西,或者很多东西。

最佳答案

在此:

$(document).ready(function () {
$(function showPassword () {
//Some code and it works
});
});

您是——冗余地——安排“showPassword”函数在浏览器构建 DOM 后立即执行。它是多余的,因为 $(document).ready(...) 在功能上与 $(...) 相同。这同样有效:

$(function showPassword() {
// the code
});

在此:

$(document).ready(function () {
function showPassword () {
//Some code and it doesn't work
};
});

您只是声明“showPassword”功能。如果你不调用它,其他任何东西都不会。因此,在第二种形式中,这将起作用:

$(document).ready(function () {
function showPassword () {
//Some code and it doesn't work
};

showPassword(); // call the function
});

关于javascript - 'function fName() { }` 和 '$(function fName(){ })' 之间有什么区别,为什么后者有效而前者无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20693441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com