哪个代码在JavaScript中表现更好?

我的问题是关系到下面的代码 -哪个代码在JavaScript中表现更好?

方案1:

var queue = []; 

var busy = false;

exports.getAProfile = function (params, cb) {

queue.push({params: params, cb: cb});

if (!busy) {

checkQueue(function (c, next) {

service.getAProfileNow(c.params, function (err, res) {

c.cb(err,res);

next();

});

});

}

}

function checkQueue(actualTask) {

var c = queue.shift();

if (c) {

busy = true;

actualTask(c, function() {

checkQueue(actualTask);

})

return queue.length;

} else {

busy = false;

return queue.length;

}

}

方案2:

var queue = []; 

var busy = false;

var actualTask = function (c, next) {

service.getAProfileNow(c.params, function (err, res) {

c.cb(err,res);

next();

});

}

exports.getAProfile = function (params, cb) {

queue.push({params: params, cb: cb});

if (!busy) {

checkQueue();

}

}

function checkQueue() {

var c = queue.shift();

if (c) {

busy = true;

actualTask(c, function() {

checkQueue(actualTask);

})

return queue.length;

} else {

busy = false;

return queue.length;

}

}

差异在这两个代码 -

  • 函数actualTask是(我猜)在第一个场景中定义了很多次,而在第二个场景中它只定义了一次。

是'我解释'是正确的吗?那哪一个更好?为什么?两种代码的性能是不同的?

注意:service模块在代码中是require-d,它只查询数据库。

回答:

只定义一次函数不会使性能或执行速度更快。它只会减少你的代码的文件大小,并使你的代码形成得很好。在这两种情况下,函数都必须跳转到过程调用。

以上是 哪个代码在JavaScript中表现更好? 的全部内容, 来源链接: utcz.com/qa/263382.html

回到顶部