为什么这个变量在JavaScript中像一个指针一样工作? (使用HTML5 Canvas)的
问题描述:
Here is a demo为什么这个变量在JavaScript中像一个指针一样工作? (使用HTML5 Canvas)的
具体来说,这是我感到迷惑的部分:
$('.red').change(function(){
pix = imageData.data;
for(var i = 0, n = pix.length; i < n; i += 4){
var green = 1, blue = 1;
pix[i] = pix[i] * $(this).val();
pix[i + 1] = pix[i + 1] * green;
pix[i + 2] = pix[i + 2] * blue;
}
context.putImageData(imageData, 0, 0);
});
它是如何修改PIX(这应该是在全球范围内)修改为imageData对象? Javascript不直接支持指针。
答
在javascript中,通过引用传递对象。他们从不复制。
啊。我认为这是他们如何在JS中工作,但我无法删除对象,因为我之前在层次结构中定义了它,所以我认为有一些奇怪的指针魔术正在进行。优秀。 – drewblaisdell