Console.log 函数 属性 对象文字与点表示法之间的区别

Console.log function property difference between object literal vs. dot notation

我使用两种不同的表示法创建对象,然后 console.log 它们:

object = {key: 'value', func: function() {}};
console.log(object);

输出:{键:'value',函数:[函数:func]}

object.key = 'value';
object.func = function() {};
console.log(object);

输出:{键:'value',函数:[函数]}

为什么输出结果不同?重要吗?

这与点号和括号号无关。

在示例 (a) 中,您在对象文字中声明了一个 属性 名称 (func) 和值(一个函数)。在示例 (b) 中,您之后将函数分配给 属性。

在第一种情况下,func用作绑定标识符,用于为函数命名。

第二个例子不是这种情况。

这不太可能产生太大影响,但函数名称在调试时会很有用。您可以明确地为函数表达式命名:

object.func = function func () {};