Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.03.2011, 21:10
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

this - кто он и зачем?
Код:
function A ( ){
this.t = function () { alert('Hello my little friend') }
}
var a = new A();
a.t();
Что означает this здесь, почему для каждого свойства и метода его нужно писать, почему без него нельзя описать свойство или метод?
Ответить с цитированием
  #2 (permalink)  
Старый 02.03.2011, 21:25
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

а поискать инфу, прежде чем задавать вопрос не пробовал?
http://javascript.ru/tutorial/object/thiskeyword
Ответить с цитированием
  #3 (permalink)  
Старый 02.03.2011, 21:27
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

this - это вообще объект или это такая же конструкция языка, как фор, или вайл?
Ответить с цитированием
  #4 (permalink)  
Старый 02.03.2011, 22:01
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Golovastik,
ответы на все ваши вопросы есть в сети в самых разнообразных вариантах. Писать здесь всё ещё раз специально для вас никто не будет.
Ответить с цитированием
  #5 (permalink)  
Старый 03.03.2011, 01:14
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

Читаю здесь http://javascript.ru/tutorial/object/thiskeyword
Код:
function Animal(name) {
    this.name = name
}
animal = new Animal("beastie");
Если следовать согласно картинке по этой ссылке:
1. Конструктор Animal инициализирует объект под названием animal.
2. После того, как инициализация объекта под названием animal прошла.
конструктор Animal создал где-то в оперативной памяти ячейку с названием this
которая стала ссылаться на свойства и методы конструктора под названием Animal?
3. Что вызывается если уже всё вызвалось,если следовать согласно картинке?

Расшифруйте пожалуйста те, 3 пункта из той ссылки правильно.
Заранее благодарю.

Последний раз редактировалось Golovastik, 03.03.2011 в 01:21.
Ответить с цитированием
  #6 (permalink)  
Старый 03.03.2011, 02:00
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

Код:
// Вот здесь в первой строке метод Animal - это класс?
function Animal(name) { 
    this.name = name 
}
animal = new Animal("beastie");
Скажите, а сам this находится в оперативной памяти компа, где-то в ячейке? И в этот момент, когда конструктор вызвался, он сразу инициализировал объект animal выделив сразу и память для него и сразу сам конструктор с именем Animal стал указывать на любое свойство и метод класса Animal или сама конструкция this,которая лежит где-то в оперативной памяти компа и хранит адрес, стала хранит ссылку, а не конструктор стал хранить ссылку на любое свойство или метод класса?

Последний раз редактировалось Golovastik, 03.03.2011 в 02:02.
Ответить с цитированием
  #7 (permalink)  
Старый 03.03.2011, 08:29
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Golovastik

В JavaScript нет классов, откуда Вы взяли этот бред? Дайте ссылку, я лично её автору сделаю экзекуцию. Затащу в гараж, надену мешок на голову, опущу руки в кипяток и заставлю жрать собственные варёные руки!

Что касается вашего вопроса, то this может играть четыре роли: созданный объект (если перед вызовом функции используется new), объект, содержащий функцию (например, в вызове Foo.bar() this будет указывать на foo). Также он может быть подменён при помощи методов .call() и .apply() или указывать на window при простом вызове: Foo() (это частный случай п. 2).

Последний раз редактировалось Matre, 03.03.2011 в 08:33.
Ответить с цитированием
  #8 (permalink)  
Старый 04.03.2011, 00:05
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

this указывает на объект класса или на свойство или метод класса?
1)А где хранится this само, в чём оно находится, в интерпретаторе или в ячейке Оп памяти?
2)
Код:
animal = new Animal("beastie");
После вызова конструктора, конструктор инициализировал объект и конструктор стал указывать на этот объект или this(встроенная конструкция языка джаваскрипт)?
3)Вот этот код:
Код:
function Animal(name) { 
    this.name = name 
}
Это создание конструктора или класса Javascript?

Последний раз редактировалось Golovastik, 04.03.2011 в 00:27.
Ответить с цитированием
  #9 (permalink)  
Старый 04.03.2011, 01:22
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

То есть в зависимости от того в каком контексте зис находится он в зависимости от этого будет содержать ссылку на тот или иной именно объект, а не свойство или метод объекта?

Если я напишу так

pavel.dyrov.psix

На какой объект будет указывать ключевое слово зис.?
Ответить с цитированием
  #10 (permalink)  
Старый 05.03.2011, 16:46
Профессор
Отправить личное сообщение для розовый слоник Посмотреть профиль Найти все сообщения от розовый слоник
 
Регистрация: 17.10.2009
Сообщений: 258

я шокену и фантазия у человека
извините но вы не пробовали прочитать какие либо книги по js?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто рисует это? greatilya Оффтопик 2 19.01.2011 13:19
Кто знаком с чатом Бородина? Нужна помощь в скриптах... OldGreyFox Элементы интерфейса 6 14.10.2010 14:19
Кто есть кто? Bogdan808 Оффтопик 11 21.08.2010 22:48
Кто работал с EditArea (редактором кода) MadGest Общие вопросы Javascript 0 15.08.2010 17:00
Кто знает как разрешить выполнения сценариев в Ie ? JsLoveR Общие вопросы Javascript 5 24.12.2009 19:25