Установите для свойства объекта отрицательное значение свойства в том же объекте (Javascript/jQuery)

Допустим, у меня есть объект Javascript:

var myObj = {
 property1 : 20,
 property2 : -20
}

Но вместо -20 за property2Мне нужно принять значение property1 и преобразовать его в отрицательный внутри property2:

var myObj = {
 property1 : 20,
 property2 : this.property1 * -1
}

Это не работает, но я думаю, что это иллюстрирует то, чего я хочу достичь.

3 ответа

Решение

Я мог бы предложить вам следующее

var myObj = {
    property1 : 20,
    get_property2 : function() {
        return this.property1 * -1;
    },
    set_property2 : function(value) {
        this.property1 = value * -1;
    }
}

редактировать

Кажется, что это зависимое свойство, поэтому оно доступно только для чтения. Но я отредактировал код так, чтобы он также был доступен для записи.

Вы не можете сделать это. Вы можете назначить его позже, хотя:

var myObj = {
    property1: 20
};

myObj.property2 = -myObj.property1;

Вы можете использовать это:

var myObj = {
   property1 : 20,
   get property2() {    return this.property1 * -1;   }
};

Но вы можете только читать property2 имущество.

Определение сеттера property2 не будет проблемой. См. Ссылку " Получатели и установщики JavaScript".

Другие вопросы по тегам