代码1
$(document).ready(function() {
$('.poem-stanza').addClass('highlight');
});
代码2
$(document).ready(
$('.poem-stanza').addClass('highlight');
);
答案 0 :(得分:3)
您阅读了所调用方法的文档(本例中为ready
方法)并查看它所期望的值。
如果它需要一个功能,请使用你的第一个例子。
如果需要jQuery *对象,请使用第二个示例(因为addClass方法的返回值是jQuery对象)。
*我假设您正在使用jQuery,因为我认为它是唯一具有这样命名的函数的库。我可能错了,$ is a stupid name for a function。
答案 1 :(得分:0)
如果函数接受函数作为参数,则代码2将不起作用,因为
$('.poem-stanza').addClass('highlight');
不是函数定义(它是一个声明)
要创建表示函数的对象,应使用以下语法之一:
function myFunc() {
}
或
var myFunc = function() {
}
或
var myFunc = new Function("...javascript code...");
在上面的一个定义之后, myFunc 将保存一个表示函数的对象。
答案 2 :(得分:0)
不,说真的,当你必须做好准备好的事情时();或类似的方法,你使用。功能。其他方法接受参数。文档将为您提供详细信息。
答案 3 :(得分:0)
就像其他人说的那样,你必须查阅文档才能看到函数接受的参数类型。但是,这里的重要部分是:如果你有一个语句,它会在解释器碰到它时执行。如果定义一个函数并将其传递给就绪函数,则就绪函数决定何时执行它。在这种特殊情况下,文档准备就绪时。另一个例子是setTimeout,它需要一个函数和一些毫秒作为参数。
规则如下:当你想将一些代码传递给其他函数时,你必须将它包装在一个函数中。如果使用(unwrapped)语句,它将被执行并将结果传递给函数。
答案 4 :(得分:0)
如果需要回调函数,可以使用function关键字。当您使用ready
和click
等方法时,您不希望在设置事件时运行代码,但是当事件发生时,您需要一个回调函数。
使用匿名函数就像使用之前定义的命名函数一样。在这样的例子中,更容易理解正在发生的事情:
function onReady() {
$('.poem-stanza').addClass('highlight');
}
$(document).ready(onReady);