【发布时间】:2020-01-30 16:43:14
【问题描述】:
在对 JavaScript ES6+ 进行一些练习时,我遇到了一个我不理解的语法。在下面的代码中,长度属性是怎么来的
{name:{length:l}}
不是以对象和DOT为前缀吗?我习惯于看到这样使用的长度属性:str.length;
注意:我使用 console.log 只是为了查看值。
const bob = { name: 'Bob' };
const alice = { name: 'Alice' };
const foundAt = [bob, alice].findIndex(({ name: { length: l } }) => console.log(l))
【问题讨论】:
-
您发布的代码记录了
0两次。因为,您正在创建一个值设置为o.name.length的l变量。所以,length指的是window.length。所以,如果你console.log(l),你应该看到3和5是字符串的长度 -
是的,这是一个错字。请忽略那部分
-
Window.length 为 1,而上述 sn-p 的结果为 -1,因为测试函数不提供结果。
-
我把它改成了你说的 console.log(l)
标签: javascript ecmascript-6 syntax