你怎么知道你必须使用 function() {} ?

发布于 2024-07-26 16:28:17 字数 223 浏览 2 评论 0原文

代码 1

$(document).ready(function() {
    $('.poem-stanza').addClass('highlight');
});

代码 2

$(document).ready(
    $('.poem-stanza').addClass('highlight');
);

code 1

$(document).ready(function() {
    $('.poem-stanza').addClass('highlight');
});

code 2

$(document).ready(
    $('.poem-stanza').addClass('highlight');
);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

聆听风音 2024-08-02 16:28:17

您阅读正在调用的方法(在本例中为 ready 方法)的文档,并查看它期望的值类型。

如果它需要一个函数,请使用您的第一个示例。

如果它需要 jQuery* 对象,请使用第二个示例(因为 addClass 方法的返回值是 jQuery 对象)。

*我假设您正在使用 jQuery,因为我认为它是唯一具有这样命名的函数的库。 不过我可能是错的, $ 是一个愚蠢的函数名称

You read the documentation for the method you are calling (the ready method in this case) and see what sort of value it expects.

If it expects a function, use your first example.

If it expects a jQuery* object, use your second example (since the return value from the addClass method is a jQuery object).

*I assume you are using jQuery as I think it is the only library that has functions named like that. I could be wrong though, $ is a stupid name for a function.

笑着哭最痛 2024-08-02 16:28:17

如果函数接受函数作为参数,则代码 2 将不起作用,因为它

$('.poem-stanza').addClass('highlight');

不是函数定义(它是语句)

要创建表示函数的对象,应使用以下语法之一:

function myFunc() {
}

or

var myFunc = function() {
}

or

var myFunc = new Function("...javascript code...");

在其中之一之后根据上面的定义,myFunc 将保存一个表示函数的对象。

If the function accepts a function as a parameter, code 2 will not work, because

$('.poem-stanza').addClass('highlight');

is not a function definition (it's a statement)

To create an object that represents a function, one of the following syntaxes should be used:

function myFunc() {
}

or

var myFunc = function() {
}

or

var myFunc = new Function("...javascript code...");

After one of the definitions above, myFunc will hold an object representing a function.

帝王念 2024-08-02 16:28:17

呵呵,就是这样的 :D

不,说真的,当你必须在 read() 内部做一些事情时; 或类似的方法,您可以使用。 功能。 其他方法接受参数。 文档将为您提供详细信息。

Heh, that's how it is :D

No, seriously, when you have to do something inside ready(); or similar methods, you use an. function. Other methods accept parameters. Docs will provide you with details.

差↓一点笑了 2024-08-02 16:28:17

就像其他人所说的那样,您必须查找文档才能了解该函数接受什么类型的参数。 然而,这里重要的部分是:如果你有一条语句,当解释器遇到它时它就会被执行。 如果您定义一个函数并将其传递给就绪函数,则就绪函数将决定何时执行它。 在这种特殊情况下,当文档准备好时。 另一个例子是 setTimeout,它需要一个函数和毫秒数作为参数。

规则是这样的:当你想将一些代码传递给其他函数时,你必须将其包装在一个函数中。 如果您使用(未包装的)语句,它将被执行并将结果传递给函数。

Like the other guys said, you have to look up the documentation to see, what type of parameters the function accepts. However, the important part here is this: If you have a statement, it gets execute when the interpreter come across it. If you define a function and pass it to the ready function, the ready function decides when to execute it. In this particular case, when the document is ready. Another example is setTimeout which expects a function and a number of milliseconds as parameters.

The rule is this: When you want to pass some code to some other function, you have to wrap it in a function. If you use a (unwrapped) statement, it will be executed and the result is passed to the function.

征﹌骨岁月お 2024-08-02 16:28:17

如果需要回调函数,请使用 function 关键字。 当你使用像readyclick这样的方法时,你不希望代码在设置事件时运行,而是在事件发生时运行,所以需要回调功能。

使用匿名函数就像使用您之前定义的命名函数一样。 在这样的示例中,可以更轻松地了解正在发生的事情:

function onReady() {
    $('.poem-stanza').addClass('highlight');
}

$(document).ready(onReady);

If you need a callback function, you use the function keyword. When you use methods like ready and click, you don't want the code to run when you set up the event, but when the event happens, so you need a callback function.

Using an anonymous function is just like using a named function that you defined earlier. In an example like this it's easier to follow what's happening:

function onReady() {
    $('.poem-stanza').addClass('highlight');
}

$(document).ready(onReady);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文