Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.01.2014, 18:09
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Как обратиться к объекту изнутри во время объявления элементов
Доброго времени. Возможно ли обратиться к объекту из него же самого?

var obj = {
		test: 2,
		test2: func(this)
	}

	function func(o){
		return o.test*3
	}
	console.log(obj)
Ответить с цитированием
  #2 (permalink)  
Старый 09.01.2014, 18:21
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

Видимо, так:
var obj = {
    test: 2,
    test2: func
}
 
function func(){
    return this.test * 3;
}
console.log(obj)
Ответить с цитированием
  #3 (permalink)  
Старый 09.01.2014, 18:33
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

var obj = {
    test: 2,
    get test2() {
        return this.test * 3;
    }
};

alert(obj.test2);


А вообще:
http://dmitrysoshnikov.com/ecmascrip...the-core/#this
__________________
kobezzza
code monkey
Ответить с цитированием
  #4 (permalink)  
Старый 09.01.2014, 19:10
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

var obj = {
        test: 2
    };
    obj.test2 = func(obj);
    function func(o){
        return o.test*3;
    }
Ответить с цитированием
  #5 (permalink)  
Старый 10.01.2014, 11:18
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

@BallsShaped - Ваш вариант возвращает саму функцию. а не результат.

@kobezzza - интересное работающее решение. А что значит get?
Ответить с цитированием
  #6 (permalink)  
Старый 10.01.2014, 11:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,084

Сообщение от shaltay
А что значит get?
Нестандартное использование Get и Set в Javascript
Дескриптор свойства, геттеры и сеттеры
Ответить с цитированием
  #7 (permalink)  
Старый 10.01.2014, 15:34
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Спасибо. Но в итоге я решил юзать функции внутри объекта. В следствии чего наткнулся на новый камень:

здесь 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()) то работает хорошо.
Ответить с цитированием
  #8 (permalink)  
Старый 10.01.2014, 17:21
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от shaltay Посмотреть сообщение
Спасибо. Но в итоге я решил юзать функции внутри объекта. В следствии чего наткнулся на новый камень:

здесь 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()) то работает хорошо.
Я уже давал тебе ссылку

Цитата:
А вообще:
http://dmitrysoshnikov.com/ecmascrip...the-core/#this
Просто ты не понимаешь как работает this, вот у тебя и проблемы.
__________________
kobezzza
code monkey
Ответить с цитированием
  #9 (permalink)  
Старый 16.01.2014, 10:47
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Да, скорее всего не понимаю. Тогда помогите представить мой алгоритм правильно.
Имеются 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)
})


Надо чтобы все эти параметры можно было вызвать в цикле.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать disabled кнопки во время отправки формы? Bad Request Events/DOM/Window 7 16.04.2014 13:49
Как обратиться к свойству объекта по имени если оно хранится в переменной xaknik Общие вопросы Javascript 2 25.04.2012 23:12
Как обратиться к элементу созданному в результате ajax-запроса? boomrest AJAX и COMET 7 14.02.2012 11:08
Как снять фокус со всех элементов? Logo Общие вопросы Javascript 7 02.07.2009 23:53
Как получить время простоя машины? IvipIZerg Ваши сайты и скрипты 22 05.06.2009 12:00