这些功能有什么区别?

时间:2017-06-08 13:28:18

标签: javascript

这两种定义方法的方法有什么区别?

 var Todo = {};
    Todo.abc = function(){
    }

function abc(){
}

2 个答案:

答案 0 :(得分:3)

第一个是anonymous function expression,存储在abc属性中。这些不是hoisted

第二个是function declaration。它有一个name属性,它是hoisted

来自MDN

  

函数表达式和函数语句之间的主要区别是函数名称,在函数表达式中可以省略它以创建匿名函数。

     

与函数声明不同,JavaScript中的函数表达式不会被提升。在定义函数表达式之前,不能使用函数表达式:

答案 1 :(得分:0)

首先是Todo属性,第二个是全局函数。 事实上,为了打电话给第一个你必须写的

Todo.abc();

请注意,Todo.abc ='您好'将覆盖实例属性。