考虑一下:
var o = { a: 1 }
read(o);
write(o);
read(o);
function read(x) {
console.log(x);
}
function write(x) {
x = { a: 2 };
}
显然结果是:
Object { a=1 }
Object { a=1 }
write函数通过分配新对象来破坏对象的引用。有没有办法做到这两点 - 分配一个新对象并保持引用?我需要这个来连接两个Float32Arrays。据我所知,没有创建新的Float32Array就不可能连接它们。还是有一个?他们应该是快速的,但对我来说,如果我想要组合两个片段,我总是要创建一个新的,它看起来相当慢。但也许这是另一个问题。
答案 0 :(得分:0)
这个怎么样:
function overwrite(x,y){
for (var prop in y) {
if( y.hasOwnProperty(prop) ) {
x[prop] = y[prop];
}
}
}
示例:overwrite(o,{a:2});
答案 1 :(得分:0)
(ES6)要从一个数组中插入一个值,从任意索引开始,请尝试typed array set() method。
// dest ... destination typed array
// scr ... array like object with elements to add
dest.set(src, dest.length); // append src elements to dest typed array