Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   This (https://javascript.ru/forum/misc/2198-this.html)

arseniy-at-home 18.11.2008 09:15

This
 
Друзья, допустим есть вот такая конструкция

function MyClass()
{
this.Method1 = Method1
this.Method2 = Method2
}

function Method1()
{
...
}

function Method2()
{
...
}

var MyObject = new MyClass()

А теперь в методе объекта MyObject я хочу узнать имя объекта MyObject. Возможно ли такое?

Kolyaj 18.11.2008 10:27

var MyObject2 = MyObject;
var MyObject3 = MyObject;

Какое из имен MyObject вы хотите узнать?

arseniy-at-home 18.11.2008 10:30

Цитата:

Сообщение от Kolyaj (Сообщение 8562)
var MyObject2 = MyObject;
var MyObject3 = MyObject;

Какое из имен MyObject вы хотите узнать?

В методе хочу выяснить, какой объект работает, т.е. строку 'MyObject2' или 'MyObject3'.

Kolyaj 18.11.2008 10:51

Дык это один и тот же объект, просто на него ссылается несколько имен.

Вам зачем?

arseniy-at-home 18.11.2008 11:00

Цитата:

Сообщение от arseniy-at-home (Сообщение 8563)
В методе хочу выяснить, какой объект работает, т.е. строку 'MyObject2' или 'MyObject3'.

Цитата:

Сообщение от Kolyaj (Сообщение 8566)
Дык это один и тот же объект, просто на него ссылается несколько имен.

Вам зачем?

var MyObject1 = new MyClass()
var MyObject2 = new MyClass()

Kolyaj 18.11.2008 11:02

И в чем проблема?

arseniy-at-home 18.11.2008 11:12

Цитата:

Сообщение от Kolyaj (Сообщение 8568)
И в чем проблема?

Проблема получить имя объекта.

Kolyaj 18.11.2008 11:13

Зачем?

arseniy-at-home 18.11.2008 11:20

Цитата:

Сообщение от Kolyaj (Сообщение 8570)
Зачем?

Вопрос не зачем, а как.
А именно: как, если говорить терминами классического ООП, метод "класса" может получить имя "экземпляра"?

Но вы, по всей видимости, не имеете ответа.

Kolyaj 18.11.2008 11:30

В классическом ООП (и в любом другом тоже) нельзя получить имя экземпляра из метода, т.к. у экземпляра нет имени, есть ссылки на него, а вот у ссылок уже есть имена.


Часовой пояс GMT +3, время: 06:21.