// This is a Framework Method
function ajaxJSONType(uri, reqtype , reqJSON , callback){
var url : uri;
$jq.ajax({
url: uri,
type: reqtype,
data:reqJSON ,
dataType: ResponseDataType.JSON,
sucess: function(data){
// do some validation on response data and call the callback function
callback(data);
},
});
}
每个开发人员都会从他们的代码中调用此方法
第一种方法:
function MyMethod(){
var reqdata = {};
ajaxJSONType(serviceUri , ReqType.POST,function(responsedata){
// Here some processing on the response will occur
});
}
这里回调方法是一个用于解析响应和进程的匿名函数。
第二种方法:
function MyMethod(){
var reqdata = {};
ajaxJSONType(serviceUri , ReqType.POST,myCallbackFun);
}
function myCallbackFun(responsedata){
// Here some processing on the response will occur
}
我的问题:
如果MyMethod在短时间内被召唤超过1000次......
Will it good to have the anonymous function or named function ?
The First approch will create function object 1000 times ?
I saw in JSLINT , we should not create anonymous function inside a loop.
here though we dont have any loop the MyMethod will be called many times by other events. So it is also like a Loop.
我正在使用IE 9浏览器。
答案 0 :(得分:0)
我在JSLINT中看到,我们不应该在循环中创建匿名函数。
JSLint中的reason for the warning可能是对循环中函数创建的闭包的误解。它与性能无关。
拥有匿名函数或命名函数会不会很好?
正如您所提到的,通过将函数表达式直接传递给调用,每次调用MyMethod
时,引擎都必须创建该函数的新副本。因此,在这种情况下,最好使用函数声明。但是,不要陷入过早的优化......你不太可能注意到任何真正的性能提升。