Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   FTread, исполнение функций в отдельных потоках (https://javascript.ru/forum/project/7558-ftread-ispolnenie-funkcijj-v-otdelnykh-potokakh.html)

B~Vladi 22.04.2011 12:12

Цитата:

Сообщение от Riim
не хочешь рассказывать почему, злодей!

Да а что тут рассказывать, ты и сам всё понимаешь ведь :)
for..in...
Так то никто никому не запрещает, только советовать не надо.

Sweet 22.04.2011 12:58

Цитата:

Сообщение от B~Vladi
for..in...

А причем тут прототип Function?:)

B~Vladi 22.04.2011 13:19

Цитата:

Сообщение от Sweet
А причем тут прототип Function?

А ты какие кавычки используешь, двойные или одинарные? Попробуй русские ёлочки - говорят, вообще никогда код падать не будет. А у китайцев вообще иероглифы вместо букв, на чем они кодят?

Sweet 22.04.2011 13:42

Цитата:

Сообщение от B~Vladi
А ты какие кавычки используешь, двойные или одинарные? Попробуй русские ёлочки - говорят, вообще никогда код падать не будет. А у китайцев вообще иероглифы вместо букв, на чем они кодят?

Не понял, к чему это?
Просто for..in - это не агрумент против расширения прототипов стандартных объектов. По-моему, истинное зло - это использование for..in без hasOwnProperty ( я лично предпочитаю Object.keys( object ).forEach - мне так кайфовее:) ).

B~Vladi 22.04.2011 13:48

Цитата:

Сообщение от Sweet
Не понял, к чему это?

Вот и я не понял твоего вопроса.

Цитата:

Сообщение от Sweet
По-моему, истинное зло - это использование for..in без hasOwnProperty

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

Категорически запрещается использовать hasOwnProperty при проверки значений, т.к. объект options может наследовать от других объектов.
Цитата:

Сообщение от Sweet
Object.keys( object ).forEach

Не кроссбраузерно.

Sweet 22.04.2011 14:01

Цитата:

Сообщение от B~Vladi
Вот и я не понял твоего вопроса.

Просто речь зашла про расширение прототипа Function, а ты из аргументов, почему это плохо, привел только for..in. Вот я и спросил, причем тут прототип Function?
Цитата:

Сообщение от B~Vladi
Например:
function Conctructor(options){  // Инициализация}

Вот ни разу не однозначный пример. С одной стороны в прототипе могут быть дефолные значения, а с другой - лично я бы учитывал только свойства options, а дефолты должны быть в самом конструкторе.
Цитата:

Сообщение от B~Vladi
Не кроссбраузерно.

У меня - кроссбраузерно:p

Riim 22.04.2011 14:15

Цитата:

Сообщение от B~Vladi
for..in...

ну вот, напугал только зазря, я уж подумал там какая-то супер-теория из потокового программирования.

B~Vladi 22.04.2011 14:47

Цитата:

Сообщение от Sweet
лично я бы учитывал только свойства options

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

Сообщение от Sweet
С одной стороны в прототипе могут быть дефолные значения

Значит так надо!!!

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

UPD:
Цитата:

Сообщение от Sweet
дефолты должны быть в самом конструкторе

Дефолтные значения должны лежать рядом с конструктором.

Sweet 22.04.2011 15:19

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

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

Kolyaj 22.04.2011 16:04

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


Часовой пояс GMT +3, время: 09:48.