Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.11.2012, 13:48
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

Помогите с пониманием наследования
Собственно, задача такая:

есть глобальная функция setContent, которая добавляет к BODY некий контент.
нужно - написать функцию, которая "перехватывает" setContent и добавляет к ее контенту добавочное содержимое.

function setContent() {
    var p = document.createElement("DIV");
    p.innerHTML = "<p>I get this data from somewhere and i pit this into BODY</p>";
    document.body.appendChild(p);
}
// хочу написать функцию, которая использует работу setContent и добавляет ей еще немного работы:
function myContent() {
     setContent.call(...) // нужно использовать эти методы? Если да, то как?..

     myFunc.prototype=setContent; // или использовать прототип?

     function myFunc() {
           // если прототип, то каким образом влиять на него в контексте наследника?..
           var str="<b>добавьте меня, плииииззз...</b>" // вот это хочу добавить к контенту из setContent, как?...
     }
}
Ответить с цитированием
  #2 (permalink)  
Старый 21.11.2012, 14:00
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Насколько я понимаю...
- Наследование применяется к объектам
- Наследование не даёт "перехвата" некой функции
Ответить с цитированием
  #3 (permalink)  
Старый 21.11.2012, 14:12
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

переопредели функцию и всё или же перепиши начальную, по другому не выйдет.
__________________
.
Ответить с цитированием
  #4 (permalink)  
Старый 21.11.2012, 14:29
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

Сообщение от Skipp Посмотреть сообщение
переопредели функцию и всё или же перепиши начальную, по другому не выйдет.
а могли бы привести пример переопределения, в контексте моего примера?..
(мне с примерами легче воспринимать)
Ответить с цитированием
  #5 (permalink)  
Старый 21.11.2012, 14:42
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Сообщение от deivan
а могли бы привести пример переопределения, в контексте моего примера?..
(мне с примерами легче воспринимать)
Это просто
function setContent(){
    alert(1);
}
function setContent(){
    alert(2);
}
setContent()
__________________
.
Ответить с цитированием
  #6 (permalink)  
Старый 21.11.2012, 15:10
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

ну а как же быть с обязательной необходимостью сохранения собственно контента?..
setContent добавляет объект в ДОМ, переопределение не даст возможности это добавление модернизировать поскольку переопределением этот объект будет убит...
Ответить с цитированием
  #7 (permalink)  
Старый 21.11.2012, 15:19
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Сообщение от deivan
setContent добавляет объект в ДОМ, переопределение не даст возможности это добавление модернизировать поскольку переопределением этот объект будет убит...
Не объект, а функция и она будет не убита а переопределена, ты можешь копировать функцию которая была и дописать своё, то что тебе нужно.

function setContent() {
    var p = document.createElement("DIV");
    p.innerHTML = "<p>I get this data from somewhere and i pit this into BODY</p>";
    document.body.appendChild(p);
}

function setContent() {
    var p = document.createElement("DIV");
    p.innerHTML = "<p>I get this data from somewhere and i pit this into BODY допиши то что надо и где надо и всё</p>";
    document.body.appendChild(p);
}
__________________
.
Ответить с цитированием
  #8 (permalink)  
Старый 21.11.2012, 15:35
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

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

а нет ли в спецификации каких-либо системных событий, предществующих записи в ДОМ?..
Ответить с цитированием
  #9 (permalink)  
Старый 21.11.2012, 16:10
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Ты конечно меня не понял, ну ладно.
Смотри тут
__________________
.
Ответить с цитированием
  #10 (permalink)  
Старый 21.11.2012, 16:46
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

Имелось ввиду вот это:
function setContent(msg) {
    alert(msg)
}
setContent('Вася')

setContent = function(old) {
    return function(msg){
         old(msg + '-дурак')
    }
}(setContent)

setContent('Вася')
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с наследованием develka Общие вопросы Javascript 1 06.06.2012 09:50
ПОМОГИТЕ с установкой 2 javascript- ов Рашид Общие вопросы Javascript 3 17.11.2010 16:19
Помогите! Многоуровневые вкладки! sergeeeeee Элементы интерфейса 2 02.08.2010 23:50
Люди, ПОМОГИТЕ! Bel666 jQuery 11 27.04.2010 15:38