Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как справиться с ошибкой функции protected?

Лучший ответ:
У функции register потерялась закрывающая скобка.

Худший ответ:
Исправьте код на нижеследующий, так должно заработать!<?php
    
    namespace App\Http\Controllers\Auth;
    
    use App\User;
    use App\Http\Controllers\Controller;
    use Illuminate\Support\Facades\Validator;
    use Illuminate\Foundation\Auth\RegistersUsers;
    use Illuminate\Http\Request;
    
    class RegisterController extends Controller
    
    {
        /*
        |--------------------------------------------------------------------------
        | Register Controller
        |--------------------------------------------------------------------------
        |
        | This controller handles the registration of new users as well as their
        | validation and creation. By default this controller uses a trait to
        | provide this functionality without requiring any additional code.
        |
        */
    
        use RegistersUsers;
    
        /**
         * Where to redirect users after registration.
         *
         * @var string
         */
        protected $redirectTo = '/home';
    
        /**
         * Create a new controller instance.
         *
         * @return void
         */
        public function __construct()
        {
            $this->middleware('guest');
        }
    	/**
    	* @param Request $request
    	* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
    	*/
    	
    	public function register( Request $request)
        {
            $this->validator($request->all())->validate();
    
            event(new Registered($user = $this->create($request->all())));
    
            $this->guard()->login($user);
    
            return $this->registered($request, $user)
                            ?: redirect($this->redirectPath());
        }
        /**
         * Get a validator for an incoming registration request.
         *
         * @param  array  $data
         * @return \Illuminate\Contracts\Validation\Validator
         */
        protected function validator(array $data)
        {
            return Validator::make($data, [
                'email' => 'required|string|email|max:255|unique:users',
                'password' => 'required|string|min:6|confirmed',
            ]);
        }
    
        /**
         * Create a new user instance after a valid registration.
         *
         * @param  array  $data
         * @return \App\User
         */
        protected function create(array $data)
        {
            return User::create([
                'name' => $data['name'],
                'email' => $data['email'],
                'password' => bcrypt($data['password']),
            ]);
        }
    }
Вопрос: Как взять имя переменной из строки?

Лучший ответ:
$rows = file('myfile.txt');  // массив со строками

foreach($rows as $row) {
	list($key, $value) = explode(' ', $row);  // разделяем стоки по пробелу
	$$key = $value;
}

Худший ответ:
В php можно создать переменную вот так:$name = 'minland';
$$name = 123;
echo $minland; // Выведет 123
В js только через eval, или создавать объект и с ним уже работать
Вопрос: Как злоумышленник может использовать MAC-адрес?

Лучший ответ:
Подмена MAC-адреса, он-же MAC Spoofing. Работает только в пределах домена коллизий. То-есть что-б работало, злоумышленник должен быть в одной локальной сети с атакуемым хостом.

Худший ответ:
Если MAC-адрес в сети используется как идентификатор или аутентификакатор, то злоумышленник, меняя MAC-адрес своего устройства на MAC-адрес жертвы, которая является авторизированным пользователем сети, может воспользоваться всеми привелегиями. Например доступом в интернет или во внутреннюю интрасеть.
Дальше использование сервисов от лица жертвы подставляет ее, т.к. любые противоправные действия будут предъявлены в первую очередь жертве, т.к. ее MAC-адрес фигурировал при атаке.

Таким образом можно, например, через общественный Wi-Fi сети выгружать экстремистские или любые другие  запрещенные на территории государства прибывания цифровые материалы в сеть.

В ряде случаев практикуется атака man-in-the-middle, в данном случае выполняется в виде подмены MAC-адреса атакующего устройства на MAC-адрес шлюза для доступа жертвы в интернет. Это позволяет перенаправить трафик жертвы через атакующее устройство для его изменения на лету или прослушки и последующей расшифровки.
Вопрос: Как реализовать загрузку файлов на сервер?

Лучший ответ:
> PHP редирект обратно
нормальный вариант

Худший ответ:
Вы можете это легко сделать на чистом JavaScript. Пример кода конкретно для вашей формы:
<script type="text/javascript">

	// По готовности страницы, вешаем на форму обрабочтик onsubmit инлайново:
	document.addEventListener('DOMContentLoaded', function() {
		document.querySelector('form#FORM_ID').setAttribute('onsubmit', 'event.preventDefault(); form_send(this);');
	});

	// Фцнкция для отправки формы на чистом JavaScript:
	function form_send(form) {
		var url = form.getAttribute('action') + '?time=' + new Date().getTime();
		var xhr = new XMLHttpRequest(); xhr.open('POST', url);
		xhr.onreadystatechange = function() {
			if (xhr.readyState === XMLHttpRequest.DONE) {
				if (xhr.status === 200) {
					form.setAttribute('onsubmit', 'event.preventDefault();');
					form.innerHTML = xhr.responseText;
				}
				else {
					alert('При отправке формы произошла ошбика, детали смотрите в консоли.');
					console.log('При отправке формы произошла ошбика, ниже объект с деталями ошибки:');
					console.dir(xhr);
				}
			}
		}
		xhr.send(new FormData(form));
	}
  
</script>
Разместите этот html-код на странице с вашей формой и не забудьте заменить FORM_ID на ID вашей формы!

P. S. Кстати, есть еще один вариант, без использования JS - можно просто разместить вашу форму внутри iframe.
Вопрос: Преобразовать аналоговый видеосигнал в IP\RTSP возможно ли?

Лучший ответ:
В продаже доступно множество моделей гибридных видеорегистраторов. Гибридными они называются потому, что умеют работать и с IP-камерами, и с аналоговыми (причём, из аналоговых, например, поддерживаются сразу и AHD, и те самые древние "просто аналоговые"). Но надо изучать характеристики. Там выбирается режим работы из нескольких вариантов. Например:
режим 1 - только 4 аналоговых
режим 2- только 8 цифровых
режим 3 - 2 аналоговых + 4 цифровых
(пример условный, т.к. в реальности поддерживаемое количество зависит и от выбранного разрешения)

Худший ответ:
https://ru.aliexpress.com/item/Bfmore-2-10-100-1-B...
ну или гуглить bnc to ip converter
Вопрос: Рекурсивное удаление подзадач?

Лучший ответ:
Если это sql, то может просто использовать каскадное удаление!?

Худший ответ:
Зависит от БД. Гуглить Recursive CTE(Common Table Expressions).
В целом SQL выглядит примерно такwith recursive cte (id, name, parent_id) as
(
 select     id,
            name,
            parent_id
 from       products
 where      parent_id = 19
 union all
 select     p.id,
            p.name,
            p.parent_id
 from       products p
 inner join cte
         on p.parent_id = cte.id
)
select * from cte;
Вопрос: Где найти толковых ребят по аудиту и по адекватным ценам?

Лучший ответ:
Нигде
У вас же никакого воркфлоу , стандартов, да я думаю даже Гита нет
Сравнить что есть а чего нет вы можете сами, ленитесь найму технаря студента
Такие аудиты очень дорогая вещь обычно и она для домашних проектов просто не подходит

Худший ответ:
На фриланс баржах, да и банально тут на Тостере. Но только стоить будет не мало, так как специалист нужен хороший. Надо уметь читать чужой код и быстро вникать.
Вопрос: Как узнать, как разведена розетка RJ-45, не разбирая ее?

Лучший ответ:
имхо проще разобрать да обжать правильно, ибо не факт что оно будет работать нормально по той схеме что там обжато.
а так берёте мультиметр на прозвонку, тянете второй кабель от кросса к розетке, на кроссе соединяете по цветам все жилы, и прозваниваете где какой

Худший ответ:
Есть ли способ понять, как разведена розетка имея на руках только другую сторону провода (не переобжимая все возможные вариантыРазумеется есть.
Но они все сложнее и дороже чем взять и правильно обжать.

Из наиболее простых - кусок провода такой же длины,  динамик и источник питания. Тупо прозваниваем. Если звенит, есть контакт.

Главное в другом - там может быть  банальный обрыв или плохой обжим.
А может и перепутанная раскладка не по схеме - в любом случае придется переобжимать, даже если вы найдете правильный порядок.
Вопрос: Правильно ли выбрасывать исключения в бизнес логике?

Лучший ответ:
Я считаю это хорошей практикой. Исключительная ситуация - это та, при которой программа выполняется не так, как ожидалось. Но, позвольте, я ожидаю, что заказ пройдет валидацию. Я ожидаю, что заказ завершится успехом. Поэтому OrderValidationException, OrderException - исключительные ситуации. Исключительной ситуацией не является, например, отмена пользователем заказа - глупо выбрасывать исключение по клику на Cancel.

Исключения гораздо глубже, чем просто "исключительная ситуация". Они помогают развести обработку ошибок по разным уровням абстракции, а использование разных типов исключений позволяет обрабатывать конкретные ошибки там, где их нужно обработать (на нужном слое). Исключения очень помогают в локализации ошибки в дальнейшем, они позволяют избавиться от простыни If .. else, проверок на null, false и прочей ереси. Они, чаще всего, делают код чище.

Но пользоваться ими стоит аккуратно, все-таки стоит разделять исключительную ситуацию и вполне нормальную, штатную ветку исполнения. Так, если заказов нет - это НЕ исключение, тут можно вернуть null - допустимо (хотя некоторые и тут выбрасывают исключение, потому что очень соблазнительно привязать код исключения к HTTP кодам). А если у вас аплоад документов, и юзер пытается загрузить файл слишком большой, то это уже исключение.

Худший ответ:
может интересно будет
https://github.com/adelf/acwa_book_ru/blob/master/...
Вопрос: Когда стоит остановиться добавлять все в переменные?

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

Худший ответ:
Создавайте столько переменных, сколько вам нужно. Почитайте статьи по оптимизации кода и управлению памятью.
Вопрос: Какой nfc модуль для arduino выбрать?

Лучший ответ:
На самом деле NFC это потомок RFID 13.5 мГц - тоесть было/есть много разных RFID 125 кГц, 13.5 мГц, 900 мГц.
Но NFC базируется на протоколоах 13.5 мГц - какие то процедуры обмена общие, кодирование данных, модуляция. В целом похоже, но не оно. RFID умел лишь передать свой ИД и так по мелочи, а NFC это уже двухсторонний обмен данными и в этот обмен входит и передача того самого ИД.

Худший ответ:
Нашел сам табличку выбрал модуль который нужен и увидел что у этого нет заявленной поддержки NFC так-что возможно ответ Александр верен и он поддерживает nfc на частоте rfid и каким-то волшебным образом там (в видео) так произошло    
. ... м да
Вопрос: Есть ли какой-то стандарт, где хранить файлы(временные файлы, данные, графику,плагины и т.д) в windows?

Лучший ответ:
Попробуйте поставить современную популярную программу (хотя бы Хром, например) без прав администратора - и посмотреть, как он раскидает свои файлы.
Общий принцип - не мешать мух и котлеты, то есть не класть в одну папку исполняемые файлы (в т.ч. библиотеки) и файлы, которые программа создает сама.
Ну, и не уверен насчет стандартов, но %APPDATA% ведет во вполне конкретный каталог...

Худший ответ:
Если плагины dll для всех пользователей, то тогда в директории, где установлена программа (program files), а если только для текущего пользователя, то как указал res2001 .
Создаваемые пользователем данные принято размещать в папке пользователя.
Вопрос: Ошибка в коде при попытке ограничить доступа к боту?

Лучший ответ:
Почему у вас bot в параметрах функции, когда там message должен быть? И что у вас за update в параметрах? У функции всего 1  аргумент по документации

Худший ответ:
Держите правильный код!import telebot

bot = telebot.TeleBot('мой ключ бота')


@bot.message_handler(commands=['start'])
def start(message):
    if message.from_user.id == "мой айди телеграмма":
        bot.send_message(message.chat.id, 'Привет!')


bot.polling(none_stop=True, interval=0)
Вопрос: Как научится печатать вслепую?

Лучший ответ:
solo на клавиатуре
verseq
Обе по своему хороши.
Проблема тут в занудстве процесса.
При должной усидчивости - это недолго. Можно и за пару недель.
При неусидчивости - можно и годами.

Худший ответ:
вслепую
verseq , например, но тут кто во что верит
Вопрос: В теге form атрибут action не указывает на конкретный файл php, почему?

Лучший ответ:
Гуглить:
Единая точка входа
mod_rewrite или аналогичный механизм
роутинг

В целом - не всегда есть необходимость указывать целевой файл по многим причинам, например это индексный файл и его указывать не обязательно, или все настроено по вышеперечисленным технологиям.

Худший ответ:
И в чем же проблема? Вы очень неясно выразились 
<form action="sendMessage.php" method="POST">
Введите сообщение<input type="text" name="message">
</form>
Вопрос: Как реализовать подбор по критериям?

Лучший ответ:
хотелось бы реализовать идею на сайте и "идти" дальше. Проще - сразу "идти" дальше.

Ответ на вопрос
Фильтр: json в base64 (для URL) и его отправляем через ajax на сервер для получения нужного результата фильтра.

Худший ответ:
У вас задача по большей части зависит от sql и реализации api. Как уже выше сказали черкз аякс делаете запрос и в ответ получаете результат.
По самой логике: в js соберите нужные чекбоксы отправьте серверу, а сервер сделав соответствующий запрос в бд вернет вам оттуда результаты
Вопрос: Как получить доступ к usr/local/bin на MacOS?

Лучший ответ:
В Finder то папка видна эта? :-)
Она ДОЛЖНА быть.
Смею предложить - в Finder нажмите command+shift+"точка", именно клавишу с точкой в английской раскладке, появятся скрытые папки и файлы.

Худший ответ:
Как вы вводили в терминале переход к папке? Возможно Вы забыли слэш / вначале поставить? Попробуйте так: cd /usr/local/bin
Вопрос: С чего лучше начать для первого заработка?

Лучший ответ:
я так думаю, что конечно же веб
Нет.
Сейчас вот зима, можно подрабатывать дворником, можно чистить машины по утрам, можно в доставку курьером устроиться.
И если вы думаете, что я глумлюсь, то снова нет. Так вы заработаете больше и быстрее, чем если сунетесь в веб, где вам не оставят шансов те, кто берёт меньше, а умеет больше.

Худший ответ:
По моим ощущениям, сейчас самые востребованные верстальщики.
Вопрос: Подтянуть изменения из ветки — как пройти уровень за 4 команды?

Лучший ответ:
Четвёртое действие (перемещение master на C3'', когда HEAD->caption)git branch -f master HEAD
Я бы и не знал, если бы не одно из заданий, и использовал связку git checkout master && git reset --hard caption.
По поводу git rebase caption (когда находимся в master). Там срабатывает fast-forward, поэтому ветка автоматически продвигается вперёд. Чтобы удать этот эффект, пишем git rebaes --no-ff. Интерактивный режим по умолчанию отключает ff.

Худший ответ:
Я написал так:
git branch -f master HEAD C3''
Вопрос: Как сохранить в БД последовательность данных?

Лучший ответ:
БД - SQL? или NoSql?...
общий совет - попробуйте рассмотреть саму последовательность, как единицу хранения.. (что то мне подсказывает, что вам надо будет работать с разными "последовательностями")
если SQL с нормализацией - таблица "сотрудники" и таблица "наборы id сотрудников"?...
да в любом случае, все реверансы, вокруг этой схемы..
ps
и да - слово "перетягивание" .. к  БД отношения не имеет.. это GUI... возможно... но по чему нет? творите, выдумывайте, пробуйте..
pps
если вы осилите (набор таблиц):
1 - id, person
2 - id, situation // ,description
3 - id, order, id-person, id-situation
и вытворяйте что хотите... сможете?
ах да.. с историей:
3 - id, version, order, id-person, id-situation
стало легче?

Худший ответ:
Структуру вижу приблизительно такую 
id, Дата , ЗалID, Сотрудники(JSON) 
{created_time:"04.03.2018 13:45",created_admin_id:1, sotrudniki:[1,5,432,2]},
{created_time:"04.03.2018 13:44",created_admin_id:1, sotrudniki:[5,432,2]}
Это если объединённый вариант SQL И NOSQL
Видно, что сперва было 3 сотрудник, а потом был добавлен сотрудник id1 на первое место
Вопрос: Какой смысл несет в себе конструкция !! в js?

Лучший ответ:
Получение логического эквивалента выражения. Оператор логического отрицания применяется дважды, например:

!!187 -> !false -> true
!!NaN -> !true -> false

Тот же результат даст Boolean(выражение).

Худший ответ:
Ещё называют двойным отрицанием. Когда ты используешь !, ты приводишь выражение к противоположному текущему в логическом эквиваленте. Потом ты отрицаешь полученное выражение.
!0 // true
!!0 // false
На самом деле удобно, но стоит использовать осторожно. Не нужно забывать про разницу между == и ===. Правила схожи.
Вопрос: На чем писать игры для мобильных устройств?

Лучший ответ:
Берите Unity, для начинающих разработчиков это сейчас самый дружелюбный движок с хорошей документацией и множеством туториалов. На производительность в первую очередь влияет кривизна рук разработчика, движок сам по себе ощутимого оверхеда не даёт, тем более для 2D, а для 3D теперь есть Lightweight Render Pipeline. Другое дело, что раньше у юнити была проблема с размером сборки под мобильники, но сейчас они её практически решили, движок занимает всего 12 мегабайт.

Худший ответ:
По 2D варианту. Qt Creator. И язык QML. За пару вечеров можно сделать. В нем прекрасный симулятор частиц qmlbook.github.io/ch08/index.html может и по новее гайд есть. + Мультиплатформенность.
Вопрос: Существует ли общий контроллер?

Лучший ответ:
Если этот "большой кусок" просто должен быть выполнен(без каких либо параметров) то я бы запихал его в before_request

Худший ответ:
посмотрите в сторону Middleware.
Вопрос: Как вычесть время, прошедшее с какой-либо даты?

Лучший ответ:
Учитесь задавать вопросы Гуглу

Худший ответ:
let startDate = new Date(1945, 5, 9);
let timeFrom = new Date() - startDate;
а дальше делишь:
timeFrom/1000                                // секунды
timeFrom/1000/60                           // минуты
timeFrom/1000/60/60                      // часы
timeFrom/1000/60/60/24                // дни
//   ... и так далее ...
Вопрос: Насколько крутой php mysqli класс?

Лучший ответ:
Говно. 
1) Я не буду говорить про кодстайл, благо он фиксится одним сочетанием клавиш...
2) Побочные эффекты (die)
3) Куча лишних вложенностей (if if if if)
4) Полностью нарушен принцип open/close (расширяться через наследование? Серьёзно?)
5) Куча избыточного кода. Например:call_user_func_array(array($this->query, 'bind_result'), $params);
Легко переписывается как:$this->query->bind_result(...$params);
6) Ну и состояние, и его мутабельность, которой не должно быть, конечно же.
На помойку, короче.

Худший ответ:
Пойдёт!
(и этот - тоже крутой скрипт)
Вопрос: Как сгенерировать DH 1024 сертификат с crt и key файлом для nginx?

Лучший ответ:
Вы dhparm не путайте с обычным сертификатом. 
Мухи отдельно, котлеты отдельно.openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -keyout server.key -out server.crt

Худший ответ:
dhparam генерит стартовое число Диффи-Хеллмана для SSL, к сертификатам это имеет опосредованное отношение. Оно нужно для предотвращения атаки понижения стойкости стартового числа, поскольку стандартные стартовые числа хорошо известны, можно вынудить систему перейти на нестойкое число и провести атаку
Вопрос: Как сохранить несколько значений в переменную?

Лучший ответ:
Как сохранить несколько значение в переменную?Для MS SQL можно использовать функции работы со списками. STRING_SPLIT (Transact-SQL) и STRING_AGG (Transact-SQL).Например
Список ролей дополняется другим списком без повторов.DECLARE @Role TABLE(Role VARCHAR(100))
INSERT INTO @Role SELECT TRIM( value ) FROM STRING_SPLIT( @RLR, ',' )
INSERT INTO @Role SELECT TRIM( value ) FROM STRING_SPLIT( @ROL, ',' ) 
                                  WHERE TRIM( value ) NOT IN ( SELECT [Role] FROM @Role )
DELETE @Role WHERE (TRIM( [Role] ) = '')
SELECT @RLR = STRING_AGG ( [Role], ', ' ) FROM @Role

Худший ответ:
Нельзя сохранить несколько значений - только одно.
Используйте курсор для обхода строк.
Для возврата из функции - можно возвращать таблицу (для ms sql).
Вопрос: Чему равен контекст в setTimeout?

Лучший ответ:
Стрелочные функции не создают собственный контекст this, а используют this окружающего контекста, того места где они определены. В вашем случае это контекст вызова log. setTimeout просто вызывает колбек по истечению таймера, по аналогии с вызовом f.apply(null [, args]);

Худший ответ:
Стрелочные функции не создают собственный контекст this, а используют this окружающего контекста, того места где они определены. В вашем случае это контекст вызова log. setTimeout просто вызывает колбек по истечению таймера, по аналогии с вызовом f.apply(null [, args]);
Вопрос: Какие у flutter подводные камни?

Лучший ответ:
Новинка. 
Как следствие - мало сообщество, мало модулей-расширений-библиотек.
В активной разработке, возможно, еще будет меняться.

Худший ответ:
для меня пока минус только в том что от релиза к релизу flutter, что нить да начинает отваливаться из последового отвалилась их http клиент потому что он как то по другому стал обрабатывать utf8
Вопрос: Как в WordPress присвоить категорию для 20 000 записей?

Лучший ответ:
// получить слаг
$url_path = parse_url( $url, PHP_URL_PATH );
$slug = pathinfo( $url_path, PATHINFO_BASENAME );
//получит пост
 $args=array(
        'name' => $slug,
        'post_type' => $post_type,
        'posts_per_page' => 1
    );
    $post = get_posts( $args );
//получить ID
$post_ID = !empty($post->ID) ? $post->ID: false;
Зная ID дальше уже не тяжело.
Для 20к записей я бы обернул это дело в Ajax и прогнал бы массив с урлами через него. Правда оно не быстрое и от возможностей вашего сервера может занять больше 5 минут

Худший ответ:
если ссылки верные, то последний элемент ссылки это слаг записи, а по нему можно выудить id записи, далее через wp_set_object_terms можно подключить запись к категории.
Вопрос: Как сделать 3д?

Лучший ответ:
Собирают куб на css а крутят на js 

snippet

Худший ответ:
такое делать на css избыточно
представьте только, какое количество перерисовок понадобится, cpu вам спасибо не скажет
лучший вариант - работа с gpu (проще в тему зайти через библиотеку threejs, сам glsl порой может обить всё желание)
отрисовка и анимация куба, хоба:
//создаем сцену
const scene = new THREE.Scene();
//создаем камеру на основе ширины и высоты окна
const camera = new THREE.PerspectiveCamera(75,window.innerWidth/window.innerHeight);
//создаем рендерер, определяем его размеры
const renderer = new THREE.WebGLRenderer({antialias: true});
renderer.setSize(window.innerWidth,window.innerHeight);
//отрисовываем в нужном месте
$('body').append(renderer.domElement);

//создаем меш (состоит из геометрии и материала)
const geometry = new THREE.BoxGeometry(1,1,1);
const material = new THREE.MeshBasicMaterial({color: 0xff0000});
const cube = new THREE.Mesh(geometry,material);

//добавляем его на сцену
scene.add(cube);
//позиционируем
cube.position.z = -5;
cube.rotation.x = 10;
cube.rotation.y = 5;
//рендерим
renderer.render(scene,camera);

//добавляем анимацию
let animate = function(){
  //задаем вращение
  cube.rotation.x += 0.01;
  renderer.render(scene,camera);
  //просим у браузера обновлять анимацию перед каждой перерисовкой
  requestAnimationFrame(animate);
}
animate();

пожалуйста, примеров куча

если говорить о математике, то нужна линейная алгебра и чуток тригонометрии
речи о докторской степени не идет, но понимание базовых принципов только сыграют на руку
Вопрос: Почему этот код не работает?

Лучший ответ:
Потому что date.getMonth внутри использует this, который с вашей магией теряется.
Вот так будет работать: magic(date.getMonth.bind(date));

Худший ответ:
https://habr.com/ru/company/ruvds/blog/422089/

Если хочешь чтоб работало так, как хочется тебе, то методы для объектов надо объявлять иначе.
class b {
  a = 123; 
  func = () => {
    console.log(this.a)
  }
}

function func(f) {
  return f()
}

func(new b().func) // 123

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