Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.03.2011, 01:12
Новичок на форуме
Отправить личное сообщение для OrmaJever Посмотреть профиль Найти все сообщения от OrmaJever
 
Регистрация: 08.03.2011
Сообщений: 3

is not a function
function a(){ alert(this); }
window.a();
// Object Window
function a(){ alert(this); }
window.document.a();
// Uncaught exception: TypeError: 'window.document.a' is not a function

Почему так? Ведь второй пример должен работать! Тестил opera & ff
Ответить с цитированием
  #2 (permalink)  
Старый 08.03.2011, 01:18
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

Не, не должен.
http://javascript.ru/basic/functions
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 08.03.2011, 01:22
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

Вы объявляете функцию методом объекта window, а пытаетесь вызвать из document
function a(){ alert(this); }
a();
// Object Window

a.call(window.document);
//document


Возможно вы это имели ввиду
__________________
readOnly
Ответить с цитированием
  #4 (permalink)  
Старый 08.03.2011, 01:27
Новичок на форуме
Отправить личное сообщение для OrmaJever Посмотреть профиль Найти все сообщения от OrmaJever
 
Регистрация: 08.03.2011
Сообщений: 3

Aetae,
Почему нет? http://javascript.ru/tutorial/object...ord#shpargalka
1 пример указывает на window который у меня работает, а 2 пример как метод, который должен работать. Почему я не прав?
Ответить с цитированием
  #5 (permalink)  
Старый 08.03.2011, 01:32
Новичок на форуме
Отправить личное сообщение для OrmaJever Посмотреть профиль Найти все сообщения от OrmaJever
 
Регистрация: 08.03.2011
Сообщений: 3

Как же так? А если объекты разные? Например
function a(param) {
this.style.width = param;
}
document.getElementById('id').a(0.5);
document.getElementsByTagName('div')[0].a(0.5);

2 разных обьекта. Так разве нельзя?
Ответить с цитированием
  #6 (permalink)  
Старый 08.03.2011, 01:48
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Нет, нельзя! Вам же написали как можно! Или вы невменяемый?
Относительно последнего примера, выглядит так:
function a(param) {
this.style.width = param;
}
a.call(document.getElementById('id'), 0.5);
a.call(document.getElementsByTagName('div')[0], 0.5);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
$('my').load(); Как сделать, чтобы это заработало mycoding Общие вопросы Javascript 25 02.10.2016 23:43
CComponent - кроссбраузерные компоненты tenshi Ваши сайты и скрипты 5 20.04.2010 23:22
Свойства посредством полиморфных функций tenshi Ваши сайты и скрипты 0 18.03.2010 17:12
Выпадающий калькулятор, помогите... Silentz Общие вопросы Javascript 2 23.01.2010 10:39
Модуль для работы с геометрией окна JSprog Библиотеки/Тулкиты/Фреймворки 25 31.08.2009 12:54