gpt4 book ai didi

javascript - 在 js 文件中有一系列命名函数是不好的做法吗?

转载 作者:行者123 更新时间:2023-11-30 09:03:22 25 4
gpt4 key购买 nike

我正在编写一个 js 文件,该文件在文档就绪部分中包含许多 jquery 命令,然后是它后面的一整套函数,这些函数在 jquery 命令中被引用。这是一个简短的例子,

//jquery on ready
$(function() {
//misc jquery commands
$('#bzm a').click(function(event) {
event.preventDefault();
});
$('.editable').not('video, img, textarea').click(function(event) {
event.stopPropagation();
loadEditor($(this));
return false;
});
});

//bunch of named functions referenced by jquery commands
function loadEditor(node, link){
event.stopPropagation();

var value = node.text();

if (editObj){
commitEditor(editObj);
}

if (node.not('video, img, textarea')){
$('#textEdit')
.copyCSS(node)
.offset(node.offset())
.css('display', 'block')
.val(node.text());

node.css('color', 'transparent');
}

if(node.is('a') || node.parent().is('a') ){

$('#urlEdit').show();
$('#urlEdit').val(node.attr('href'));
} else {$('#urlEdit').hide();}

editObj = node;

if (link){
$('#urlEdit').select();
}else{
$('#textEdit').select();
}
}

我觉得我已经看到它说命名函数会导致 js 或类似的东西性能不佳。我能找到的最接近的例子是 here .我只是想确定地知道。

最佳答案

没有。调用命名函数会花费变量查找(如果不是全局则便宜)和函数调用。将命名函数传递给另一个函数只需要一次变量查找。

下面是在 Chrome 上运行的一些微基准测试。对所有基准测试持保留态度。

(function () {
function f() { }
var a = [1, 2, 3, 4, 5, 6];
var t0 = Date.now();
for (var i = 100000; --i >= 0;) { a.map(f); }
var t1 = Date.now();
print(t1 - t0);
})()

24

(function () {
var a = [1, 2, 3, 4, 5, 6];
var t0 = Date.now();
for (var i = 100000; --i >= 0;) { a.map(function f() {}); }
var t1 = Date.now();
print(t1 - t0);
})()

29

传递命名函数比传递匿名函数更快,这可能是因为匿名函数在每个循环条目中重复实例化。

关于javascript - 在 js 文件中有一系列命名函数是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7313280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com