我知道Javascript中有3种不同类型的函数声明,并且我知道有细微的区别,但是我不知道为什么这样好,为什么我们需要全部这三种?

function MyObject{
    function SomeName(){}

    this.SomeName = function(){}

    var SomeName = function(){}
}

最佳答案

function SomeName(){}:您不能将SomeName分配为另一件事;该函数被提升到最接近的函数范围,允许您在顶部使用时在代码中进一步声明它
this.SomeName = function(){}:公开此函数,以便可以通过MyObject.SomeName访问它
var SomeName = function(){}:您可以将SomeName分配给另一件事;变量名称被提升到最近的函数作用域,但是在声明之前使用它会导致SomeName不是函数错误

只是为了娱乐,还有
const SomeName = function(){}:您不能将SomeName分配给其他东西;在声明之前使用它会导致SomeName未定义错误
let SomeName = function(){}:您可以将SomeName分配给另一件事;在声明之前使用它会导致SomeName未定义错误

首选项

就个人而言,当我不立即导出函数时,我倾向于使用export function SomeName(){},但使用const SomeName = () => {}

10-08 03:55