Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.01.2016, 18:45
Интересующийся
Отправить личное сообщение для Руднев Посмотреть профиль Найти все сообщения от Руднев
 
Регистрация: 03.11.2015
Сообщений: 11

Обращение к свойству объекта.
Доброго времени суток всем!

Подскажите пожалуйста, как быть в данной ситуации.

Есть объект.

var defaultValues = {
    repayment: [],
    creditAmount: {
      val: $creditAmount.val()
    },
    monthPayment: {
      val: $monthPayment.val()
    },
    creditTerm: {
      val: $period.val()
    },
    creditRate: {
      val: 0.19 / defaultValues.creditTerm.val
    },
    pay: 0,
    term: 0
  };



Как в значение creditRate.val записать частное 0.19 и creditTerm.val ?

Сейчас defaultValues.creditTerm.val undefined.

Понимаю, наверно очевидный ответ, но я в ступоре. Не судите строго.

Последний раз редактировалось Руднев, 10.01.2016 в 19:04.
Ответить с цитированием
  #2 (permalink)  
Старый 10.01.2016, 19:20
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 573

Руднев,
val: 0.19 / this.creditTerm.val
Ответить с цитированием
  #3 (permalink)  
Старый 10.01.2016, 19:33
Интересующийся
Отправить личное сообщение для Руднев Посмотреть профиль Найти все сообщения от Руднев
 
Регистрация: 03.11.2015
Сообщений: 11

Сообщение от Decode Посмотреть сообщение
Руднев,
val: 0.19 / this.creditTerm.val
ну это не работает. Я так пробовал.   

this в данном случае обращается к контексту объекта creditRate, а мне нужно обратиться к свойству объекта defaultValues
Ответить с цитированием
  #4 (permalink)  
Старый 10.01.2016, 19:34
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

var defaultValues = {
    repayment: [],
    creditAmount: {
      val: $creditAmount.val()
    },
    monthPayment: {
      val: $monthPayment.val()
    },
    creditTerm: {
      val: $period.val()
    },
    creditRate: {
      val: function() {return typeof defaultValues.creditTerm.val === 'undefined' ?
                        "не определено" :  0.19 / defaultValues.creditTerm.val }
    },
    pay: 0,
    term: 0
  };

defaultValues.creditRate.val()  // получение значения

Последний раз редактировалось Keramet, 10.01.2016 в 19:59.
Ответить с цитированием
  #5 (permalink)  
Старый 10.01.2016, 19:38
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

Подправил - по идее должно сработать

Последний раз редактировалось Keramet, 10.01.2016 в 19:46.
Ответить с цитированием
  #6 (permalink)  
Старый 10.01.2016, 20:29
Интересующийся
Отправить личное сообщение для Руднев Посмотреть профиль Найти все сообщения от Руднев
 
Регистрация: 03.11.2015
Сообщений: 11

Сообщение от Keramet Посмотреть сообщение
Подправил - по идее должно сработать
Да, спасибо, работает, т.е. вариант только такой, если val делать методом ?

Проще не сделать ?
Ответить с цитированием
  #7 (permalink)  
Старый 10.01.2016, 20:36
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

Руднев,
По идее, любую задачу можно решать несколькими методами. Я пока только такой нашёл - ведь я только начал учить JS. но, думаю, спецы сделали бы по-другому, а меня раскритиковали в "пух и прах" Так что будем ждать другие варианты - я сам с удовольствием гляну
Ответить с цитированием
  #8 (permalink)  
Старый 11.01.2016, 00:34
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 573

Сообщение от Руднев Посмотреть сообщение
ну это не работает. Я так пробовал.   

this в данном случае обращается к контексту объекта creditRate, а мне нужно обратиться к свойству объекта defaultValues
Да бля... Я чет не посмотрел сразу, что там вложенные объекты. Мб так:

var defaultValues = new function() {
  /*repayment = [];
  
  this.creditAmount = {
    val: $creditAmount.val()
  };
  
  this.monthPayment = {
    val: $monthPayment.val()
  };*/
  
  this.creditTerm = {
    val: 10
  };
  
  this.creditRate = {
    val: (0.19 / this.creditTerm.val)
  };
  
  this.pay = 0;
  
  this.term = 0;
};

alert(defaultValues.creditRate.val);
Ответить с цитированием
  #9 (permalink)  
Старый 11.01.2016, 01:25
Интересующийся
Отправить личное сообщение для Руднев Посмотреть профиль Найти все сообщения от Руднев
 
Регистрация: 03.11.2015
Сообщений: 11

Сообщение от Decode Посмотреть сообщение
Да бля... Я чет не посмотрел сразу, что там вложенные объекты. Мб так:

var defaultValues = new function() {
  /*repayment = [];
  
  this.creditAmount = {
    val: $creditAmount.val()
  };
  
  this.monthPayment = {
    val: $monthPayment.val()
  };*/
  
  this.creditTerm = {
    val: 10
  };
  
  this.creditRate = {
    val: (0.19 / this.creditTerm.val)
  };
  
  this.pay = 0;
  
  this.term = 0;
};

alert(defaultValues.creditRate.val);
Класс, спасибо! Поясните пожалуйста, если вас не затруднит, в двух словах, к чему вы преобразовали? И почему у меня не работало ? Спасибо еще раз большое! Я просто только начинаю познавать, и хотелось бы понять нюансы.
Ответить с цитированием
  #10 (permalink)  
Старый 11.01.2016, 01:34
Кандидат Javascript-наук
Отправить личное сообщение для yazonnile Посмотреть профиль Найти все сообщения от yazonnile
 
Регистрация: 25.05.2012
Сообщений: 133

Тут более чем подробно описано.
https://learn.javascript.ru/object-methods
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается получить доступ к свойству объекта Kinetic.Image Straj Общие вопросы Javascript 5 07.08.2014 11:44
Обратиться к свойству объекта через его название ruzik Общие вопросы Javascript 2 11.04.2014 21:58
Как обратиться к свойству объекта по имени если оно хранится в переменной xaknik Общие вопросы Javascript 2 25.04.2012 22:12
Как в JavaScript присвоить функцию свойству объекта? kokon Общие вопросы Javascript 5 25.05.2010 21:11
Обращение к свойству value и text поля select Flashwalk Общие вопросы Javascript 4 01.03.2010 12:01