我在 Meteor 中遇到数组问题,其中 Meteor 向数组对象添加了一个 proto 字段,尽管我只添加了该对象。 我已经在 Meteor 之外对此进行了测试,我的数组仅包含我传递给它的字段。
正常(非 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();
meteor 代码:
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
});
}
最佳答案
这没有任何问题,它是 ECMA 6 javascript 规范的一部分,正如现代 Web 浏览器中所发现的那样。任何 javascript 对象都有一个 __proto__ 对象,允许您放置在更改数组时可以继承的属性。
您可以在这里阅读更多相关信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto
这不会以任何方式影响您的应用程序,当您循环访问对象时,它通常会被忽略/不可见,除非您明确调用它。 __
添加到其开头,因此干扰最小。
关于javascript - Meteor 将 _proto_ 添加到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28371261/