Как обратиться к объекту изнутри во время объявления элементов
Доброго времени. Возможно ли обратиться к объекту из него же самого?
var obj = {
test: 2,
test2: func(this)
}
function func(o){
return o.test*3
}
console.log(obj)
|
Видимо, так:
var obj = {
test: 2,
test2: func
}
function func(){
return this.test * 3;
}
console.log(obj)
|
var obj = {
test: 2,
get test2() {
return this.test * 3;
}
};
alert(obj.test2);
А вообще: http://dmitrysoshnikov.com/ecmascrip...the-core/#this |
var obj = {
test: 2
};
obj.test2 = func(obj);
function func(o){
return o.test*3;
}
|
@BallsShaped - Ваш вариант возвращает саму функцию. а не результат.
@kobezzza - интересное работающее решение. А что значит get? |
Цитата:
Дескриптор свойства, геттеры и сеттеры |
Спасибо. Но в итоге я решил юзать функции внутри объекта. В следствии чего наткнулся на новый камень:
здесь jquery:
function calc(x){
var obj = {
test: function(){
return 2
},
test2: function(){
return this.test() * x
}
}
return obj;
}
$.each(calc(5),function(k,v){
console.log(k)
console.log(v())
})
Выдает ошибку что метода test не существует. Хотя если вызвать console.log(calc(5).test2()) то работает хорошо. |
Цитата:
Цитата:
|
Да, скорее всего не понимаю. Тогда помогите представить мой алгоритм правильно.
Имеются n параметров, которые зависят друг от друга. Например:
function params(x){
return {
a: x,
b: a/2,
c: a+b,
...
n: m*l*k/j
}
}
$.each(params(2),function(k,v){
$('#'+k).val(v)
})
Надо чтобы все эти параметры можно было вызвать в цикле. |
| Часовой пояс GMT +3, время: 02:23. |