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 () {};
我使用两种不同的表示法创建对象,然后 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 () {};