这两种定义方法的方法有什么区别?
var Todo = {};
Todo.abc = function(){
}
和
function abc(){
}
答案 0 :(得分:3)
第一个是anonymous function expression,存储在abc
属性中。这些不是hoisted。
第二个是function declaration。它有一个name
属性,它是hoisted。
来自MDN:
函数表达式和函数语句之间的主要区别是函数名称,在函数表达式中可以省略它以创建匿名函数。
与函数声明不同,JavaScript中的函数表达式不会被提升。在定义函数表达式之前,不能使用函数表达式:
答案 1 :(得分:0)
首先是Todo属性,第二个是全局函数。 事实上,为了打电话给第一个你必须写的
Todo.abc();
请注意,Todo.abc ='您好'将覆盖实例属性。