Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 30.09.2010, 17:59
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

cainrus,
не хотите делать так, как принято в языке, на котором пишете, можете просто игнорировать мои сообщения.
Ответить с цитированием
  #12 (permalink)  
Старый 30.09.2010, 18:07
Интересующийся
Отправить личное сообщение для cainrus Посмотреть профиль Найти все сообщения от cainrus
 
Регистрация: 30.09.2010
Сообщений: 13

Sweet,
pointer теперь в зоне видимости и к нему открытый доступ через
FirstObject.pointer
Ответить с цитированием
  #13 (permalink)  
Старый 30.09.2010, 18:13
Интересующийся
Отправить личное сообщение для cainrus Посмотреть профиль Найти все сообщения от cainrus
 
Регистрация: 30.09.2010
Сообщений: 13

Kolyaj:
Вы говорите не о том как принято в языке, а о том как удобно разработчикам, потому что Вам не нравятся какие-то "костыли".
в php тоже были костыли для нереализованных возможностей языка, затем некоторые костыли реализовали.
А в javascript слово private зарезервировано для будущего использования, т.е. это говорит о том, что возможно это когда-то будет реализовано и принято.

Последний раз редактировалось cainrus, 30.09.2010 в 18:17.
Ответить с цитированием
  #14 (permalink)  
Старый 30.09.2010, 18:25
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от cainrus
pointer теперь в зоне видимости и к нему открытый доступ через FirstObject.pointer
Это вполне очевидно Я и не понял по-началу, что этого не должно быть Это объясняет затеяние
Ответить с цитированием
  #15 (permalink)  
Старый 30.09.2010, 18:47
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Вот, навскидку:
Object.prototype.key = (function(){
  var storage = [], _undefined;
  return function(value){
    if(value!=_undefined){
      for(var i=0; i<storage.length; i++)
        if(storage[i].object==this){
          storage[i].value = value;
          return value;
        }
      storage.push({object:this,value:arguments[0]});
      return value;
    }
    for(var i=0; i<storage.length; i++) if(storage[i].object==this) return storage[i].value;
    return _undefined;
  }
}())

var FirstObject = {}, SecondObject = {};
FirstObject.key(100);
SecondObject.key(999);

alert([FirstObject.key(), SecondObject.key()]);

Последний раз редактировалось Sweet, 01.10.2010 в 12:59. Причина: Добавил возможность хранить значения false, 0 и т.п.
Ответить с цитированием
  #16 (permalink)  
Старый 30.09.2010, 19:17
Интересующийся
Отправить личное сообщение для cainrus Посмотреть профиль Найти все сообщения от cainrus
 
Регистрация: 30.09.2010
Сообщений: 13

Sweet:
Удивляюсь как вы до этого дошли. Работает так как требовалось. Первоначально я всего лишь хотел реализовать функционал для массива как в php: next, prev, current, end, reset, key. Всё застопорилось, когда я обнаружил, что внутренний указатель во всех массивах везде одинаков.
Ответить с цитированием
  #17 (permalink)  
Старый 01.10.2010, 10:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Sweet,
Вопрос а если value = 0 ? FirstObject.key(0)=null а надо наверно FirstObject.key(0)=0.
Вопрос к желающим как правильно сделать проверку наличия агрумента у функции?
Ответить с цитированием
  #18 (permalink)  
Старый 01.10.2010, 11:44
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от рони
Вопрос к желающим
??? К Каким желающим?
Сообщение от рони
как правильно сделать проверку наличия агрумента у функции?
Проверить свойство arguments.length либо typeof arguments[0] != 'undefined'.
Ответить с цитированием
  #19 (permalink)  
Старый 01.10.2010, 12:24
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Sweet
Проверить свойство arguments.length либо typeof arguments[0] != 'undefined'.
Никаких либо.

http://alljs.ru/articles/undefined.html#args
Ответить с цитированием
  #20 (permalink)  
Старый 01.10.2010, 12:56
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от Kolyaj
Никаких либо.
Почему так категорично? Я специально сделал именно typeof != 'undefined', потому что в данном случае по-моему неоправданным считать 'undefined' за аргумент. Ведь это же не хранилище неопределенности
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопр. замыкание Shaci jQuery 6 05.03.2010 12:21