目前,我正在學習更多關於JavaScript對象的內部運作和跨在多個變量從對象返回的例子就是:有道從JavaScript對象返回多個變量
var squareGrid = function(width, n, z) {
width = width || 1;
n = n || 4;
var z = z || width/2.0;
var edges = [],
pts = [];
var step = width/n;
for (var u = 0; u < n; u++) {
var u_added = u * n * 4;
for (var v = 0; v < n; v++) {
var delta = u_added + 4 * v;
var t_v = step * (v - n/2);
var t_u = step * (u - n/2);
pts.push([t_v, t_u, z]); // top left
pts.push([t_v, t_u + step, z]); // top right
pts.push([t_v + step, t_u + step, z]); // bottom right
pts.push([t_v + step, t_u, z]); // bottom left
edges.push([delta + 0, delta + 1]);
edges.push([delta + 1, delta + 2]);
edges.push([delta + 2, delta + 3]);
edges.push([delta + 3, delta + 0]);
}
}
return {
edges: edges,
pts: pts
};
}
在這種情況下, ,爲了返回edges
和points
,看起來有鍵 - 值對被返回,其中鍵和值是相同的東西。這種方法是必要的還是可以做到以下幾點?
return{ edges, pts}};
不在ES5,除非你想要的陣列。 – SLaks
@SLaks我可以這麼做嗎:'''return {edges,pts}};'''?如果是這樣,我應該什麼時候使用哪種方法? – loremIpsum1771
JavaScript對象不返回任何東西。在你的例子中,該函數返回一個對象。 'return {edges,pts}'實際上是有效的ES6,它只是'return {edges:edges,pts:pts}'的簡寫形式。但是我不清楚你的問題是什麼。 *「看起來有鍵值對被返回,而鍵和值是相同的東西」*它們不是。屬性名稱和*變量名稱*是一樣的。屬性名稱是字符串「邊緣」,但值是一些東西。 –