Я предлагаю своеобразную игру: один здешний человек собеседует другого, за этим могут наблюдать (слушать) другие люди, конечно это всё бесплатно. Результат: обоснованное ЧСВ собеседуемого или указание на ошибки и недостатки. 
	 | 
	
		
 Подведем итоги: 
	Пойдем от самого очевидного и Самое очевидное решение, заключается в том, что я случайно забыл упомянуть this (думаю что это решение не в счет). 1. 
var foo = function () {
    var a = 1;
    function b() {
        return 2;
    }
    this.a = a;
    this.b = b;
}();
alert([a, b()]) //1, 2
Это то что должно прийти в голову вторым (простая перестановка): 2. 
var foo = function () {
    var a = 1;
    function b() {
        return 2;
    }
    c = a;
    d = b;
}();
a = c;
b = d;
alert([a, b()]);
Это уже более грамотный ответ, т.к. не создаются глобальные переменные (хотя b и указывает на window): 3. 
var foo = function () {
    var a = 1;
    function b() {
        return 2;
    }
    return {
        a : a,
        b : b
    };
}();
a = foo.a;
b = foo.b;
alert([a, b()]);
Незнаю почему, но только один человек догадался использовать toString/toSource, ведь это очевидно, вспомните тесты Яндекса 4. 
var foo = function () {
    var a = 1;
    function b() {
        return 2;
    }
};
eval(foo.toString().match(/{([\s\S]+)}/)[1])
alert([a, b()]) //1,2
5. Эталонное и самое неочевидное решение, использовать - Multiple-value returns из JavaScript 1.7 (работает начиная с Firefox 2). 
var foo = function () {
    var a = 1;
    function b() {
        return 2;
    }
    return [a, b];
};
[a, b] = foo();
alert([a, b()]); //1, 2
Объсню почему последнее решение было взято за эталон. А дело в том, то Multiple-value returns включены в будущий стандарт ES6, спецификация которого уже давно лежит на офсайте. Тем более те кто писал на Python или расширения для FF должны были это как-никак вспомнить. Ну а так как товарищ vflash сказал, что общение с ним за 10к/час полезней всяких конференций (на которых уже второй год эту тему мусолят), последний вариант, самое то. Появился стимул к прочтению нового стандарта? :)  | 
	
		
 monolithed, 
	гениально, браво. monolithed в презеденты // как из мухи сделать слона var муха = 'слон';  | 
	
		
 Цитата: 
	
  | 
	
		
 Можно я прокомментирую(так сказать разбор полетов), хотел вчера, но форум трет сообщения, а второй раз набивать лень. Думаю, все могут прокомментировать решения тоже. 
	Скажу честно мне пришли в голову первые 4 варианта. Первые два я послал monolithed. Третий не стал посылать, хотя в голову он пришел первым, потому что разговор шел про функции, мне и первый то казался не совсем правильным. По поводу четвертого: Это Пятый конечно в голову не пришёл, т.к. Стандартная мысль - кроссбраузерность. Я например никогда не буду не брать человека, только потому, что он не пройдет подобный тест или ответит на вопрос не правильно типа: Цитата: 
	
  | 
	
		
 Ну я отправил в личку monolithed первый вариант, хотя второй мне тоже пришел в голову но не стал его отправлять из-за бональности, слишком уж он мне бональным показался. Остальные варианты и не продумывал, то есть далее я уже не стал сидеть придумывать что-то. 
	По поводу пятого я и не знал что так вообще можно делать, ибо так же как и Gozar, думаю в первую очередь о кроссбраузерности. А еще не дописанные стандарты я никогда не читаю, предпочитаю читать их после финального выхода. Цитата: 
	
  | 
	
		
 monolithed, 
	в чём смысл задачи? Что можно узнать о кандидате, дав ему эту задачу? Какие знания проверить?  | 
	
		
 Цитата: 
	
 читает ли он регулярно javascript.ru/forum  | 
	
		
 Цитата: 
	
 Цитата: 
	
 Собственно в уровне компетенции vflash не сомневаюсь, но вот выставленный тариф должен как-то подтверждать его уровень знаний.  | 
	
		
 Цитата: 
	
  | 
| Часовой пояс GMT +3, время: 17:30. |