gpt4 book ai didi

JavaScript 函数声明样式

转载 作者:搜寻专家 更新时间:2023-11-01 04:55:24 26 4
gpt4 key购买 nike

在 Javascript 中,我见过三种不同的函数定义方式。

  • 常规风格:

函数 foo()
{
//做点什么
}

  • 新的 Js 忍者风格

var foo = function(){
//做点什么
}

  • DOM 特定样式

window.foo = function(){
//做点什么
}

什么问题,

以上三者有什么区别?我应该使用哪一个?为什么?

最佳答案

第一个是函数声明。它被提升(你可以在当前范围内的任何地方使用它)。

第二个是使用匿名函数的变量定义。变量被提升,赋值保持不变。在您分配它的那一行之前,该函数可能不会被使用。

第三个是分配一个全局方法。与第二个类似,虽然适用于全局对象,但效果不佳。

然而,您可以考虑第四种选择(命名函数表达式):

var foo = function bar(){ //do something }

在这里,bar 将仅在其自身内部可用,这对于递归很有用,而不是用它搅动当前范围。

您可以根据自己的需要选择任何方法。我只会投票反对第二种方法,因为它使函数表现得像一个变量。

一旦您提到第二个和第三个选项,我想提醒您污染全局对象是 considered bad practice .您最好考虑使用自执行匿名函数来创建单独的范围,例如

(function(){
var t = 42; // window.t still does not exist after that
})();

我想您可能会在 JavaScript Scoping and Hoisting 上找到更详细的文章有用。

关于JavaScript 函数声明样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7730198/

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