请考虑以下Javascript代码:
var a = [];
var f = function() {
for (var i = 0; i < 3; i++) {
a.push(function(){alert(i)});
}
for (var j = 0; j < 3; j++) {
a[j]();
}
};
Run Code Online (Sandbox Code Playgroud)
警报三次打印出'3'.我想要一个不同的行为 - 在循环的每次迭代中生成一个打印i的当前值的函数.即3个打印不同索引的函数.
有任何想法吗?
我有一个对象ajax_tryit调用ajax_generic ans发送它3个函数.他们都被命名了.
使用匿名函数会更好(更高效,更快一点).
应用程序...这是ajax回调函数,可以做3件事,传递,失败或未定义(通常是php错误).
function ajax_generic( server_response_text, pass_func, fail_func, undefined_func )
{
var aml_status = check_aml( server_response_text.slice( 0, 6 ) );
if( aml_status === Constant.AML.PASS )
{
pass_func();
}
else if( aml_status === Constant.AML.FAIL )
{
fail_func();
}
else
{
undefined_func();
}
}
function ajax_tryit( server_response_text, html_div )
{
var pass_func = function {window.location.reload()};
var fail_func = function(server_response_text) { alert( 'ajax_tryit(): ' + server_response_text ) } ;
var undefined_func = function(server_response_text) { alert( 'php error: ' + server_response_text ) }; …Run Code Online (Sandbox Code Playgroud)