Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #61 (permalink)  
Старый 22.04.2011, 12:12
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Riim
не хочешь рассказывать почему, злодей!
Да а что тут рассказывать, ты и сам всё понимаешь ведь
for..in...
Так то никто никому не запрещает, только советовать не надо.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #62 (permalink)  
Старый 22.04.2011, 12:58
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от B~Vladi
for..in...
А причем тут прототип Function?
Ответить с цитированием
  #63 (permalink)  
Старый 22.04.2011, 13:19
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Sweet
А причем тут прототип Function?
А ты какие кавычки используешь, двойные или одинарные? Попробуй русские ёлочки - говорят, вообще никогда код падать не будет. А у китайцев вообще иероглифы вместо букв, на чем они кодят?
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #64 (permalink)  
Старый 22.04.2011, 13:42
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от B~Vladi
А ты какие кавычки используешь, двойные или одинарные? Попробуй русские ёлочки - говорят, вообще никогда код падать не будет. А у китайцев вообще иероглифы вместо букв, на чем они кодят?
Не понял, к чему это?
Просто for..in - это не агрумент против расширения прототипов стандартных объектов. По-моему, истинное зло - это использование for..in без hasOwnProperty ( я лично предпочитаю Object.keys( object ).forEach - мне так кайфовее ).
Ответить с цитированием
  #65 (permalink)  
Старый 22.04.2011, 13:48
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Sweet
Не понял, к чему это?
Вот и я не понял твоего вопроса.

Сообщение от Sweet
По-моему, истинное зло - это использование for..in без hasOwnProperty
Истинное зло - использование hasOwnProperty везде, во всех циклах. Далеко не всегда он нужен. Например:
function Conctructor(options){
  // Инициализация
}

Категорически запрещается использовать hasOwnProperty при проверки значений, т.к. объект options может наследовать от других объектов.
Сообщение от Sweet
Object.keys( object ).forEach
Не кроссбраузерно.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #66 (permalink)  
Старый 22.04.2011, 14:01
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от B~Vladi
Вот и я не понял твоего вопроса.
Просто речь зашла про расширение прототипа Function, а ты из аргументов, почему это плохо, привел только for..in. Вот я и спросил, причем тут прототип Function?
Сообщение от B~Vladi
Например:
function Conctructor(options){  // Инициализация}
Вот ни разу не однозначный пример. С одной стороны в прототипе могут быть дефолные значения, а с другой - лично я бы учитывал только свойства options, а дефолты должны быть в самом конструкторе.
Сообщение от B~Vladi
Не кроссбраузерно.
У меня - кроссбраузерно
Ответить с цитированием
  #67 (permalink)  
Старый 22.04.2011, 14:15
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от B~Vladi
for..in...
ну вот, напугал только зазря, я уж подумал там какая-то супер-теория из потокового программирования.
Ответить с цитированием
  #68 (permalink)  
Старый 22.04.2011, 14:47
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Sweet
лично я бы учитывал только свойства options
Ага, я потом буду юзать твое API и в опции спецально передавать экземпляры, которые наследуют от других объектов. Ты этим поломаешь мне всё наследование. Хочешь узнать, какими словами я буду тебя вспоминать?!
Сообщение от Sweet
С одной стороны в прототипе могут быть дефолные значения
Значит так надо!!!

Проверять надо тип значения, если чо. Это вообще отдельная тема.

UPD:
Сообщение от Sweet
дефолты должны быть в самом конструкторе
Дефолтные значения должны лежать рядом с конструктором.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф

Последний раз редактировалось B~Vladi, 22.04.2011 в 15:08.
Ответить с цитированием
  #69 (permalink)  
Старый 22.04.2011, 15:19
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

B~Vladi, В твоих сообщениях ко мне (в этой теме) как-то дофига негатива (может мне кажется?), и мне это совершенно непонятно...

UPD: И вообще, твой пример никак не связан с циклом for..in!
function Conctructor(options){
  for(var prop in options) switch(prop){
    case 'some': ...
  }
  ...
Сомневаюсь, что так кто-нибудь (адекватный) будет делать.

Последний раз редактировалось Sweet, 22.04.2011 в 15:31.
Ответить с цитированием
  #70 (permalink)  
Старый 22.04.2011, 16:04
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

B~Vladi,
тебя спрашивают, почему плохо расширять Function.prototype, а ты объясняешь, почему плохо расширять Object.prototype. Так в Object.prototype никто и не лезет.
Ответить с цитированием
Ответ



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

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