Обращение к свойству объекта.
Доброго времени суток всем!
Подскажите пожалуйста, как быть в данной ситуации. Есть объект. 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. Понимаю, наверно очевидный ответ, но я в ступоре. Не судите строго. |
Руднев,
val: 0.19 / this.creditTerm.val |
Цитата:
this в данном случае обращается к контексту объекта creditRate, а мне нужно обратиться к свойству объекта defaultValues |
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() // получение значения |
Подправил - по идее должно сработать
|
Цитата:
Проще не сделать ? |
Руднев,
По идее, любую задачу можно решать несколькими методами. Я пока только такой нашёл - ведь я только начал учить JS. но, думаю, спецы сделали бы по-другому, а меня раскритиковали в "пух и прах" :) Так что будем ждать другие варианты - я сам с удовольствием гляну |
Цитата:
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); |
Цитата:
|
Тут более чем подробно описано.
https://learn.javascript.ru/object-methods |
Часовой пояс GMT +3, время: 18:33. |