cuốn sách gpt4 ai đã làm

javascript - js foo()、foo 和 function(){foo()} 之间的区别

In lại Tác giả: Walker 123 更新时间:2023-11-28 20:41:38 30 4
mua khóa gpt4 Nike

我有一个 jquery 对话框,上面有一个按钮(我的按钮,不是对话框按钮之一)。

设置对话框后,我有以下代码:

$('#bar').click(foo('baz'));

当我加载页面并显示对话框时,foo 就会运行(无需按 #bar)。

如果代码是:

$('#bar').click(foo);

hoặc

$('#bar').click(function(){foo('baz')});

foo 不运行。

这是为什么呢?指向我应该 RTFM 的地方,感激不尽。

只是为了澄清:为什么 foo 在没有按下按钮的情况下在第一个实例中运行(即在对话框初始化时),而 foo 在后两个示例中不运行。

哦,我想我刚刚解决了。

在 1. 中,foo 的结果被传递给 click。2.我还是不确定。3. anon 函数被传递给 click。

câu trả lời hay nhất

这不会等待点击来调用foo:

$('#bar').click(foo('baz'));

(foo('baz') 是在执行此行时执行的,而不是在用户单击 #bar 时执行的)

这不会将参数传递给 foo :

$('#bar').click(foo);

这可能就是您所需要的(除非 foo 构建并返回一个函数,但我猜它不需要):

$('#bar').click(function(){foo('baz')});

它不起作用的事实可能是找不到 id bar 的元素或者您没有单击它。

详细说明:

当你执行时

foo(bar); 

您使用参数bar执行foo.

当你执行时

a = foo;

你给变量Mộtgiá trịfoo,它可能是一个函数,也可能不是。

当你打电话时

var a = function() {foo(bar)};

您创建一个新的匿名函数,该函数在调用时执行 foo(bar),并将这个新函数作为变量 Một giá trị.

当你执行时

$('#bar').click(function(){foo('baz')});

您传递一个新函数,在调用时调用 foo('baz'),作为 $('#bar').click( 的参数。JQuery 调用此函数当您单击 id 为 bar 的元素时函数。

关于javascript - js foo()、foo 和 function(){foo()} 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14292977/

30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress