22.04.2011, 12:12
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от Riim
|
не хочешь рассказывать почему, злодей!
|
Да а что тут рассказывать, ты и сам всё понимаешь ведь
for..in...
Так то никто никому не запрещает, только советовать не надо.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
22.04.2011, 12:58
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
Сообщение от B~Vladi
|
for..in...
|
А причем тут прототип Function?
|
|
22.04.2011, 13:19
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от Sweet
|
А причем тут прототип Function?
|
А ты какие кавычки используешь, двойные или одинарные? Попробуй русские ёлочки - говорят, вообще никогда код падать не будет. А у китайцев вообще иероглифы вместо букв, на чем они кодят?
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
22.04.2011, 13:42
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
Сообщение от B~Vladi
|
А ты какие кавычки используешь, двойные или одинарные? Попробуй русские ёлочки - говорят, вообще никогда код падать не будет. А у китайцев вообще иероглифы вместо букв, на чем они кодят?
|
Не понял, к чему это?
Просто for..in - это не агрумент против расширения прототипов стандартных объектов. По-моему, истинное зло - это использование for..in без hasOwnProperty ( я лично предпочитаю Object.keys( object ).forEach - мне так кайфовее ).
|
|
22.04.2011, 13:48
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от Sweet
|
Не понял, к чему это?
|
Вот и я не понял твоего вопроса.
Сообщение от Sweet
|
По-моему, истинное зло - это использование for..in без hasOwnProperty
|
Истинное зло - использование hasOwnProperty везде, во всех циклах. Далеко не всегда он нужен. Например:
function Conctructor(options){
// Инициализация
}
Категорически запрещается использовать hasOwnProperty при проверки значений, т.к. объект options может наследовать от других объектов.
Сообщение от Sweet
|
Object.keys( object ).forEach
|
Не кроссбраузерно.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
22.04.2011, 14:01
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
Сообщение от B~Vladi
|
Вот и я не понял твоего вопроса.
|
Просто речь зашла про расширение прототипа Function, а ты из аргументов, почему это плохо, привел только for..in. Вот я и спросил, причем тут прототип Function?
Сообщение от B~Vladi
|
Например:
function Conctructor(options){ // Инициализация}
|
Вот ни разу не однозначный пример. С одной стороны в прототипе могут быть дефолные значения, а с другой - лично я бы учитывал только свойства options, а дефолты должны быть в самом конструкторе.
Сообщение от B~Vladi
|
Не кроссбраузерно.
|
У меня - кроссбраузерно
|
|
22.04.2011, 14:15
|
|
Рассеянный профессор
|
|
Регистрация: 06.04.2009
Сообщений: 2,379
|
|
Сообщение от B~Vladi
|
for..in...
|
ну вот, напугал только зазря, я уж подумал там какая-то супер-теория из потокового программирования.
|
|
22.04.2011, 14:47
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от Sweet
|
лично я бы учитывал только свойства options
|
Ага, я потом буду юзать твое API и в опции спецально передавать экземпляры, которые наследуют от других объектов. Ты этим поломаешь мне всё наследование. Хочешь узнать, какими словами я буду тебя вспоминать?!
Сообщение от Sweet
|
С одной стороны в прототипе могут быть дефолные значения
|
Значит так надо!!!
Проверять надо тип значения, если чо. Это вообще отдельная тема.
UPD:
Сообщение от Sweet
|
дефолты должны быть в самом конструкторе
|
Дефолтные значения должны лежать рядом с конструктором.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Последний раз редактировалось B~Vladi, 22.04.2011 в 15:08.
|
|
22.04.2011, 15:19
|
Профессор
|
|
Регистрация: 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.
|
|
22.04.2011, 16:04
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
B~Vladi,
тебя спрашивают, почему плохо расширять Function.prototype, а ты объясняешь, почему плохо расширять Object.prototype. Так в Object.prototype никто и не лезет.
|
|
|
|