Meteor将_proto_添加到数组中

时间:2015-02-06 17:20:04

标签: javascript arrays meteor

我遇到Meteor中的数组问题,Meteor正在向数组对象添加 proto 字段,尽管我只添加了对象。 我在Meteor之外测试了这个,我的数组只有我传递的字段。

普通(非流星)代码:

function coisa() {
    var a = [];

    b = [];

    function test() {
        c = [];
        a.push(1, 2, 3);
        b.push(4, 5, 6);
        c.push(7, 8, 9);
    }

    function loggerA() {
        return a;
    }

    function loggerB() {
        return b;
    }

    function loggerC() {
        return c;
    }

    test();

    console.log(loggerA());
    console.log(loggerB());
    console.log(loggerC());
}
coisa();

流星代码:

if (Meteor.isClient) {
    Template.hello.rendered = function () {
        var a = [];

        b = [];

        function test() {
            c = [];
            a.push(1, 2, 3);
            b.push(4, 5, 6);
            c.push(7, 8, 9);
        }

        function logger() {
            console.log(a);
            console.log(b);
            console.log(c);
        }
/*        function loggerA() {
            return a;
        }

        function loggerB() {
            return b;
        }

        function loggerC() {
            return c;
        }

        */

        test();
        logger();

//        console.log(loggerA());
//        console.log(loggerB());
//        console.log(loggerC());
    }
}

if (Meteor.isServer) {
    Meteor.startup(function () {
        // code to run on server at startup
    });
}

1 个答案:

答案 0 :(得分:1)

这没有任何问题,它是ECMA 6 javascript规范的一部分,因为它是在现代网络浏览器中找到的。任何javascript对象都有一个__proto__对象,允许您放置在更改数组时可以继承的属性。

您可以在此处详细了解:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto

这不应该以任何方式影响您的应用,当您循环浏览对象时,它通常会被忽略/不可见,除非您明确地调用它。 __被添加到它的开头,因此它是最小的侵入性。