Что произойдет в JavaScript, если я назначу объекту свойство, у которого есть метод get, но нет метода установки? - PullRequest
0 голосов
/ 02 декабря 2018

В следующем коде оба варианта использования console.log(o.x) print 1.Что происходит с заданием o.x = 2?Это просто игнорируется?

var o = {
    get x() {
        return 1;
    }
}

console.log(o.x);  // 1
o.x = 2
console.log(o.x);  // 1

1 Ответ

0 голосов
/ 02 декабря 2018

В небрежном режиме, да, он будет просто проигнорирован - значение «назначено» будет отброшено.Но в строгом режиме (что рекомендуется) будет выдана следующая ошибка:

Uncaught TypeError: Невозможно установить свойство x из #<Object>, которое имеет только геттер

'use strict';
var o = {
    get x() {
        return 1;
    }
}

console.log(o.x);  // 1
o.x = 2
...