Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.04.2013, 21:29
Новичок на форуме
Отправить личное сообщение для _dude01 Посмотреть профиль Найти все сообщения от _dude01
 
Регистрация: 05.04.2013
Сообщений: 6

как получить ссылку на переменную через аргумент функции?
я хочу знать как реализовать это(если возможно конечно):
function change(variable){
    variable = 10 ;
}
var x = 1 ;
change(x) ;
alert(x) ; //выведет 10

но ничего лучше чем это лучше не придумал
function change(variable){
    window[varible] = 10 ;
}
var x = 1 ;
change("x") ;
alert(x) ;//выведет 10

прошу помощи
заранее спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 05.04.2013, 21:35
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

передайте объект или массив
Ответить с цитированием
  #3 (permalink)  
Старый 05.04.2013, 22:08
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Для подобного доступа можно использовать функции
function change(changer){
  changer(10);
}
var x = 1;
change(function(arg){x=arg;});
alert(x);
Ответить с цитированием
  #4 (permalink)  
Старый 05.04.2013, 23:56
Новичок на форуме
Отправить личное сообщение для _dude01 Посмотреть профиль Найти все сообщения от _dude01
 
Регистрация: 05.04.2013
Сообщений: 6

Сообщение от SV0L0CH Посмотреть сообщение
Для подобного доступа можно использовать функции
function change(changer){
  changer(10);
}
var x = 1;
change(function(arg){x=arg;});
alert(x);
это не сработает поскольку значение переменной изменяется только в функции ,снаружи она не меняется
Ответить с цитированием
  #5 (permalink)  
Старый 06.04.2013, 00:26
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

Используй объект тебе сказали, примитивные типы данных передаются в функцию значением, которое тупо копируется, а объекты передаются ссылками на оригинал объекта. Передай в функцию ссылку на объект.

var obj = {x:20};

function change (object){
      object.x = 11;
}

alert(obj.x); //20
change(obj);
alert(obj.x); //11

Последний раз редактировалось megaupload, 06.04.2013 в 00:31.
Ответить с цитированием
  #6 (permalink)  
Старый 06.04.2013, 05:57
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

_dude01, не понимаешь в чем-то? Проверь прежде чем утверждать!

function change(changer){
  changer(10);
}
var x = 1;
change(function(arg){x=arg;});
alert(x);
Ответить с цитированием
  #7 (permalink)  
Старый 06.04.2013, 11:45
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Давно мечтаю о сахаре для такого:
var x;
function setX(_){x=_;}
function getX(){return x;}
function accessX(_){
  if(arguments.length)
    x=_;
  return x;
}
Ответить с цитированием
  #8 (permalink)  
Старый 06.04.2013, 12:23
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

SV0L0CH,
сеттеры и геттеры не , не слышал?
Ответить с цитированием
  #9 (permalink)  
Старый 06.04.2013, 12:32
Новичок на форуме
Отправить личное сообщение для _dude01 Посмотреть профиль Найти все сообщения от _dude01
 
Регистрация: 05.04.2013
Сообщений: 6

в JS в них нет смысла

Последний раз редактировалось _dude01, 06.04.2013 в 12:35.
Ответить с цитированием
  #10 (permalink)  
Старый 06.04.2013, 12:40
Новичок на форуме
Отправить личное сообщение для _dude01 Посмотреть профиль Найти все сообщения от _dude01
 
Регистрация: 05.04.2013
Сообщений: 6

Сообщение от danik.js Посмотреть сообщение
_dude01, не понимаешь в чем-то? Проверь прежде чем утверждать!

function change(changer){
  changer(10);
}
var x = 1;
change(function(arg){x=arg;});
alert(x);
в этом просто нет смысла
тоже само что и
function change(arg) {
    x = arg;
}
var x = 1 ;
change(10) ;
alert(x) ;
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из строки содержащей namespace получить ссылку на объект? wwwboy Общие вопросы Javascript 2 07.12.2011 09:22
как реализовать передачу функции в функцию?? czp Общие вопросы Javascript 10 29.11.2011 19:21
JS классы - как объединить функции в класс olga153b Events/DOM/Window 3 01.11.2011 14:13
Обращение к объекту через ссылку boro-da jQuery 4 08.08.2011 15:48
Как получить запрос через адрес Finesse Серверные языки и технологии 2 21.06.2011 19:56