Обращение к свойству объекта.
Доброго времени суток всем!
Подскажите пожалуйста, как быть в данной ситуации. Есть объект.
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, время: 22:09. |