cor*_*vid 6 javascript node.js data-structures
我在几个节点示例中已经看过几次,但我不确定该怎么做.一个例子是a net.Socket.从数据侦听器发出警告后,这是一个套接字.
> commands._events.data
[ [Function], warned: true ];
Run Code Online (Sandbox Code Playgroud)
另一个例子是使用 /^(some)(regex)$/.exec("someregex")
[ 'someregex',
'some',
'regex',
index: 0,
input: 'someregex' ]
Run Code Online (Sandbox Code Playgroud)
我不确定我理解这个数据结构是什么.它是列表还是字典?为什么它有索引,还有键值对?我能做到match.index,但也match[1].它是如何构建的?
(对不起,如果这是一个骗局,在谷歌找不到它).
它是一个数组,但具有附加属性。使用正则表达式的示例可以从规范中exec进行解释- 请参阅步骤 13 和 15,例如它创建一个数组,然后添加属性index:
- 令 A 为由表达式 new Array() 创建的新数组,其中 Array 是具有该名称的标准内置构造函数。
- 设 matchIndex 为 i。
- 使用参数“index”调用 A 的 [[DefineOwnProperty]] 内部方法,属性描述符 {[[Value]]: matchIndex, [[Writable]: true, [[Enumerable]]: true, [[Configurable]]: true },并且是真的。
(A为最终返回值)
你也可以做到的:
var x = [1, 2, 3];
x['abc'] = 5;
console.log(x); //[1, 2, 3, abc: 5]
console.log(x.length); //3
console.log(x[1]); //2
console.log(x.abc); //5
Run Code Online (Sandbox Code Playgroud)