2014-01-26 2 views
1

Часть кода У меня естьЧто побитовое или среднее значение в инициализации по умолчанию функции?

function x() { 
    this.type = 'image' | 'file'; 
    // ... 
} 

Что побитовое or значит? Функция не генерирует ошибку, но я просто не понимаю код.

+2

это, вероятно, просто ошибка, и означало '||'. Но даже тогда это просто неправильно. –

+0

Обычно, когда это делается, это с '||'; Я никогда не видел этого раньше – scrblnrd3

+2

@JanDvorak Это не имеет смысла здесь, учитывая, что * обе стороны * четко определены. Использование '||' всегда будет разрешать «образ». – mc10

ответ

0

Что побитовое или среднее?

Ну, это побитовое ИЛИ. Спросите программиста, что это должно означать - хотя это кажется ошибкой.

И что он делает?

Он преобразует оба аргумент в число (которые приведут к NaN для двух строк), а затем 32-битных чисел (что приведет к 0), то его или их к нолю. Это всегда произойдет, поэтому это эквивалентно this.type = 0;.

Что, возможно, имело место?

«по умолчанию» оператор || может быть общим и подобное, но это не имеет смысла для меня здесь (нет параметра в конструкторе, операнды нет переменных). Мои догадки:

  • Оператор + бы сцепить две строки и рядом с кнопкой | на некоторых клавиатурах - еще используя одну строку буквального вместо будет более разумным
  • Операнды должны были быть числовым константы (переменные? свойства чего-то?), а свойство type объекта представляет собой битовую маску различных типов.
Смежные вопросы