Почему эта переменная действует как указатель в Javascript?(с использованием HTML5 Canvas) - PullRequest
1 голос
/ 28 ноября 2011

Вот демоверсия

В частности, эту часть я нахожу запутанной:

$('.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);
});

Как модифицирующий пиксель (который должен находиться в глобальной области видимости) модифицирует объект imageData? Javascript напрямую не поддерживает указатели.

Ответы [ 2 ]

4 голосов
/ 28 ноября 2011

Javascript напрямую не поддерживает указатели.

Нет, но это ссылка , которая имеет очень похожую семантику. Вы не создаете копию в этом задании. Объекты передаются по ссылке, примитивные типы по значению.

1 голос
/ 28 ноября 2011

В javascript объекты передаются по ссылке. Они никогда не копируются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...