Как обратиться к объекту изнутри во время объявления элементов
Доброго времени. Возможно ли обратиться к объекту из него же самого?
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, время: 14:38. |