Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 23.08.2011, 10:10
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

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

что вернёт функция?

(function f() {
    function f() { return 1 }

    return f();

    function f() { return 2 }
})();
Ответить с цитированием
  #32 (permalink)  
Старый 23.08.2011, 12:04
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

По-моему, задача не представляет сложности, если знать различия Function Declaration и Function Expression.
Ответить с цитированием
  #33 (permalink)  
Старый 23.08.2011, 12:40
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Вот вам реальная простенькая задачка, которая недавно возникла.

Реализовать функцию getWords(id), которая:

1. принимает в качестве аргумента строку css селектора (для простоты просто id dom элемента);
2. возвращает массив слов содержащихся внутри этого элемента, в том числе и в дочерних.

Достаточно просто, но прикольно для начинающих. Тут и немного работы с dom, и в целом полезно.
Ответить с цитированием
  #34 (permalink)  
Старый 23.08.2011, 21:40
Аватар для SlavaPav
Аспирант
Отправить личное сообщение для SlavaPav Посмотреть профиль Найти все сообщения от SlavaPav
 
Регистрация: 25.02.2010
Сообщений: 57

Мой вариант реализации самоопределяемой функции:
var displayName = (function() {
    function func() {
        alert('First name');
        func = function() {
            alert('Second name');
        };
    }
    
    return function() {
        func();
    };
})();

displayName();
displayName();

// Более удобный вариант
function memoize(init, main) {
    function current() {
        init.apply(null, arguments);
        current = main;
    }
    
    return function() {
        current.apply(null, arguments);
    };
}

var displayName = memoize(function() {alert('First name');}, function() { alert('Second name');});

displayName();
displayName();
Ответить с цитированием
  #35 (permalink)  
Старый 25.08.2011, 02:15
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

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

я сам то её решил.

и да... работать эта задачка будет только в FF (версия - хз, свежая).

итак, вот код с комментами, вместо условия.

как сделать так, чтобы ....

<div id=a>0</div>

<script>
a=document.getElementById('a');

/* тут пропущенный кусок моего кода */


// всё хорошо. при клике к содержимому
// будет добавляться буква 'abc'
// всё статично
a.onclick = function(){ a.innerHTML += 'abc' };
</script>

... чтобы при клике по div к его innerHTML прибавлялись не 'abc', а 'ABC' ?
Ответить с цитированием
  #36 (permalink)  
Старый 25.08.2011, 02:21
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

в самом конце

а код нельзя менять.

только дописать свой кусок. местонахождение определено комментами /**/
Ответить с цитированием
  #37 (permalink)  
Старый 25.08.2011, 08:03
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Цитата:
работать эта задачка будет только в FF (версия - хз, свежая).
Опера, хромиум, FF5+:
<div id=a>0</div>

<script>
a=document.getElementById('a');

/* тут пропущенный кусок моего кода */
(function(){
  var cached = a.innerHTML;
  a.__defineGetter__('innerHTML', function(){
    return cached;
  });
  a.__defineSetter__('innerHTML', function(b){
    cached = b.toUpperCase();
    var div = document.createElement('div');
    div.innerHTML = cached;
    for(var i = 0, length = a.childNodes.length; i < length; ++i){
      a.removeChild(a.childNodes[i]);
    }
    for(var i = 0, length = div.childNodes.length; i < length; ++i){
      a.appendChild(div.childNodes[i]);
    }
  });
})();

// всё хорошо. при клике к содержимому
// будет добавляться буква 'abc'
// всё статично
a.onclick = function(){ a.innerHTML += 'abc' };
</script>
Ответить с цитированием
  #38 (permalink)  
Старый 25.08.2011, 08:28
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от B@rmaley.e><e
Опера, хромиум, FF5+:
Ты зачем решил? Задачки то для новичков специально, а ты им подсказки даешь.

Но то что melky, заявил тока про FF я тоже улыбнулся, геттеры и сеттеры давно поддерживаются и другими... Кроме любимого ИЕ =)
Ответить с цитированием
  #39 (permalink)  
Старый 25.08.2011, 08:34
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

devote, специально скрыл, желающие потом смогут посмотреть решение. Ну и оно для всех нормальных браузеров, а не только FF.
Сообщение от devote
давно поддерживаются и другими
Ну, может он решил её как-нибудь иначе. Мало ли чего Mozilla могли напихать в свой движок.
Ответить с цитированием
  #40 (permalink)  
Старый 25.08.2011, 08:42
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от B@rmaley.e><e
Ну, может он решил её как-нибудь иначе.
хотелось бы посмотреть на его решение =)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы у toggle была ненулевая высота? student-k Общие вопросы Javascript 7 15.08.2011 23:46
HTML5 Как сделать, чтобы можно было двигать картинку мышью? Бобр Общие вопросы Javascript 2 18.06.2010 21:22
Нужна помощь для реализации функции d'n'd vaal Элементы интерфейса 4 09.06.2010 17:27
Создание вкладок, нужна помощь... CaHuTaP Общие вопросы Javascript 3 12.02.2009 18:41
НУжна помощ ! Jumong Общие вопросы Javascript 4 01.10.2008 23:17