用JavaScript理解匿名函数
我了解函数及其工作原理。但是,我不确定以下几点:用JavaScript理解匿名函数,javascript,jquery,Javascript,Jquery,我了解函数及其工作原理。但是,我不确定以下几点: function(msg) { alert(msg); } 如果这没有分配给任何东西,它是如何命名的 我更熟悉这一点: function alert(msg) { // set it alert(msg); } alert('hello!'); //call it 您可以将使用此语法定义的函数分配给变量,就像其他对象一样: var myAlert = function(msg) { alert(msg); }; myAlert("h
function(msg) { alert(msg); }
如果这没有分配给任何东西,它是如何命名的
我更熟悉这一点:
function alert(msg) { // set it
alert(msg);
}
alert('hello!'); //call it
您可以将使用此语法定义的函数分配给变量,就像其他对象一样:
var myAlert = function(msg) { alert(msg); };
myAlert("hello!");
匿名函数最常见的用例是作为高阶函数—当您将一个函数作为另一个函数的参数提供时。一个常见的例子是AJAX请求——您提供了一个回调函数,在请求完成时执行。使用jQuery,您可以编写:
$.get('/someurl', myAlert);
当
/someurl
上的资源响应时,jQuery将执行myAlert
。您可以将使用此语法定义的函数分配给变量,就像其他对象一样:
var myAlert = function(msg) { alert(msg); };
myAlert("hello!");
匿名函数最常见的用例是作为高阶函数—当您将一个函数作为另一个函数的参数提供时。一个常见的例子是AJAX请求——您提供了一个回调函数,在请求完成时执行。使用jQuery,您可以编写:
$.get('/someurl', myAlert);
当
/someurl
上的资源响应时,jQuery将执行myAlert
。您可以将使用此语法定义的函数分配给变量,就像其他对象一样:
var myAlert = function(msg) { alert(msg); };
myAlert("hello!");
匿名函数最常见的用例是作为高阶函数—当您将一个函数作为另一个函数的参数提供时。一个常见的例子是AJAX请求——您提供了一个回调函数,在请求完成时执行。使用jQuery,您可以编写:
$.get('/someurl', myAlert);
当
/someurl
上的资源响应时,jQuery将执行myAlert
。您可以将使用此语法定义的函数分配给变量,就像其他对象一样:
var myAlert = function(msg) { alert(msg); };
myAlert("hello!");
匿名函数最常见的用例是作为高阶函数—当您将一个函数作为另一个函数的参数提供时。一个常见的例子是AJAX请求——您提供了一个回调函数,在请求完成时执行。使用jQuery,您可以编写:
$.get('/someurl', myAlert);
当
/someurl
上的资源响应时,jQuery将执行myAlert
。除了将其分配给变量之外,如前所述,您可以像这样立即调用它:
(function(msg) { alert(msg); })('hello!');
['hello!'].forEach(function(msg) { alert(msg); });
或者您可能希望将其作为参数传递给另一个函数,如下所示:
(function(msg) { alert(msg); })('hello!');
['hello!'].forEach(function(msg) { alert(msg); });
如前所述,除了将其分配给变量之外,您还可以像这样立即调用它:
(function(msg) { alert(msg); })('hello!');
['hello!'].forEach(function(msg) { alert(msg); });
或者您可能希望将其作为参数传递给另一个函数,如下所示:
(function(msg) { alert(msg); })('hello!');
['hello!'].forEach(function(msg) { alert(msg); });
如前所述,除了将其分配给变量之外,您还可以像这样立即调用它:
(function(msg) { alert(msg); })('hello!');
['hello!'].forEach(function(msg) { alert(msg); });
或者您可能希望将其作为参数传递给另一个函数,如下所示:
(function(msg) { alert(msg); })('hello!');
['hello!'].forEach(function(msg) { alert(msg); });
如前所述,除了将其分配给变量之外,您还可以像这样立即调用它:
(function(msg) { alert(msg); })('hello!');
['hello!'].forEach(function(msg) { alert(msg); });
或者您可能希望将其作为参数传递给另一个函数,如下所示:
(function(msg) { alert(msg); })('hello!');
['hello!'].forEach(function(msg) { alert(msg); });
事实并非如此。你需要有一些参考资料
function(msg) { alert(msg); }();
// alert will appear
var f = function(msg) { alert(msg); };
f();
// alert will appear
$.ajax({
url: '/some/ajax/url',
method:' get'
})
.done(function(msg) { alert(msg); });
// alert will appear displaying the response data.
这里的想法是,done
函数接受一个参数并执行该参数,如下所示:
function done(callback) {
...
callback(responseData);
}
我对jquery ajax api的使用可能不准确。我很快这样做是为了说明这一点
顺便说一下,当您将内联函数传递给某个对象或将其分配给变量时,此模式称为函数表达式。它本身不是。你需要有一些参考资料
function(msg) { alert(msg); }();
// alert will appear
var f = function(msg) { alert(msg); };
f();
// alert will appear
$.ajax({
url: '/some/ajax/url',
method:' get'
})
.done(function(msg) { alert(msg); });
// alert will appear displaying the response data.
这里的想法是,done
函数接受一个参数并执行该参数,如下所示:
function done(callback) {
...
callback(responseData);
}
我对jquery ajax api的使用可能不准确。我很快这样做是为了说明这一点
顺便说一下,当您将内联函数传递给某个对象或将其分配给变量时,此模式称为函数表达式。它本身不是。你需要有一些参考资料
function(msg) { alert(msg); }();
// alert will appear
var f = function(msg) { alert(msg); };
f();
// alert will appear
$.ajax({
url: '/some/ajax/url',
method:' get'
})
.done(function(msg) { alert(msg); });
// alert will appear displaying the response data.
这里的想法是,done
函数接受一个参数并执行该参数,如下所示:
function done(callback) {
...
callback(responseData);
}
我对jquery ajax api的使用可能不准确。我很快这样做是为了说明这一点
顺便说一下,当您将内联函数传递给某个对象或将其分配给变量时,此模式称为函数表达式。它本身不是。你需要有一些参考资料
function(msg) { alert(msg); }();
// alert will appear
var f = function(msg) { alert(msg); };
f();
// alert will appear
$.ajax({
url: '/some/ajax/url',
method:' get'
})
.done(function(msg) { alert(msg); });
// alert will appear displaying the response data.
这里的想法是,done
函数接受一个参数并执行该参数,如下所示:
function done(callback) {
...
callback(responseData);
}
我对jquery ajax api的使用可能不准确。我很快这样做是为了说明这一点
顺便说一下,当您将内联函数传递给某个对象或将其分配给变量时,此模式称为函数表达式。调用匿名函数有四种常见方法: 将其保存到一个变量,如下所示:
var fn = function(msg) {
// do something
}
通过在括号中换行执行,如下所示:
(function(msg) {
console.log( msg ); // -> 'This is my message'
})('This is my message');
以“!”开头执行
通过将其作为回调传递
someFn( param1, param1, function( msg ) {
console.log( msg );
});
调用匿名函数有四种常见方法: 将其保存到一个变量,如下所示:
var fn = function(msg) {
// do something
}
通过在括号中换行执行,如下所示:
(function(msg) {
console.log( msg ); // -> 'This is my message'
})('This is my message');
以“!”开头执行
通过将其作为回调传递
someFn( param1, param1, function( msg ) {
console.log( msg );
});
调用匿名函数有四种常见方法: 将其保存到一个变量,如下所示:
var fn = function(msg) {
// do something
}
通过在括号中换行执行,如下所示:
(function(msg) {
console.log( msg ); // -> 'This is my message'
})('This is my message');
以“!”开头执行
通过将其作为回调传递
someFn( param1, param1, function( msg ) {
console.log( msg );
});
调用匿名函数有四种常见方法: 将其保存到一个变量,如下所示:
var fn = function(msg) {
// do something
}
通过在括号中换行执行,如下所示:
(function(msg) {
console.log( msg ); // -> 'This is my message'
})('This is my message');
以“!”开头执行
通过将其作为回调传递
someFn( param1, param1, function( msg ) {
console.log( msg );
});
必须分配给变量 比如说
var f = function () {};
或分配给函数的参数
Fun(arg1, function (){});
必须分配给变量 比如说
var f = function () {};
或分配给函数的参数
Fun(arg1, function (){});
必须分配给变量 比如说
var f = function () {};
或分配给函数的参数
Fun(arg1, function (){});
必须分配给变量 比如说
var f = function () {};
或分配给函数的参数
Fun(arg1, function (){});
th