gpt4 book ai didi

javascript - 为什么在 DOM 事件触发之前声明命名函数?

转载 作者:行者123 更新时间:2023-11-30 17:03:01 27 4
gpt4 key购买 nike

我正在阅读 Jon Duckett 的书“Javascript 和 jQuery”。在关于事件监听器的部分,他说:

If you use a named function when the event fires on your chosen DOM node, write that function first. (You could also use an anonymous function)

然后用这段代码跟进:

function checkUsername() {
var elMsg = document.getElementById('feedback');
if (this.value.length < 5) {
elMsg.textContent = 'Username must be 5 characters or more';
} else {
elMsg.textContent = '';
}
}

var elUsername = document.getElementById('username');
elUsername.addEventListener('blur', checkUsername, false);

既然解释器将在处理脚本之前遍历并查找所有命名的函数和变量,为什么函数在传递到 addEventListener 之前出现很重要?

最佳答案

就脚本执行而言,这无关紧要,但它有助于保持一致的可维护性顺序,这实际上只是一种说法,它使代码更易于阅读和理解。

在 JavaScript 中,函数和变量声明总是被提升到它们包含范围的顶部,所以函数写在哪里并不重要。

我推荐以下顺序:

  1. 指令
  2. 变量声明
  3. 函数声明
  4. 变量实例化
  5. 代码执行

使用此顺序还允许开发人员轻松地将函数声明切换为变量实例化,例如:

function foo() {
...do stuff...
}

var foo;
foo = switch ? function () {
...do stuff...
} : function () {
...do other stuff...
};

而且,它有助于防止在作者弄错函数或变量的范围时发生愚蠢的错误。

关于javascript - 为什么在 DOM 事件触发之前声明命名函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28520004/

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