繁体   English   中英

Node.js的对象和数组混乱

[英]Confusion in the object and array for Node.js

我有以下代码:

    var dataArray = [];

    switch (request_url.query.group) {
        case 'returning': 
            dataArray = {};
            var returning = _.filter(result, function(result) {
                return (result.sessions.length > 1) ? true : false;
            });
            //Am I setting the object dataArray here?
            dataArray.returning = returning.length; 
            //Am I setting the array dataArray here?
            dataArray['new'] = result.length - returning.length; 
            break;

我对这里的dataArray感到困惑。 代码的第一行声明一个数组,在切换的情况下,声明一个同名的对象。 什么是“新”和“返回”值集,它分别属于数组或对象是谁? 此外,对象是Node.js中数组的超类吗?

什么是“新”和“返回”值集,它分别属于数组或对象是谁?

它们将属于 Object 在此行之前,只有dataArray引用Array

dataArray = {};

之后, dataArray将仅是Object的引用,而Array将变得不可访问且可用于垃圾回收。


注意:如果希望dataArray成为“ ObjectArray ”,则可以将Object分配给dataArray的索引:

dataArray[0] = {};

并类似地设置属性:

dataArray[0].returning = ...;
dataArray[0]['new'] = ...;

此外,对象是Node.js中数组的超类吗?

是。 Array继承自Object因为Array.prototype是一个Object MDN很好地总结了原型链 ,这是JavaScript的继承模型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM