powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JS. prototype.Method и this.Method
10 сообщений из 10, страница 1 из 1
JS. prototype.Method и this.Method
    #38779732
T_STV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Недавно начал работать с JS. И не могу понять в чем разница между:
Код: javascript
1.
2.
3.
4.
var Obj = function () {
    this.someMethod = function () {        
    };
};


и
Код: javascript
1.
2.
3.
var Obj = function () { };
Obj.prototype.someMethod = function () {
};
...
Рейтинг: 0 / 0
JS. prototype.Method и this.Method
    #38779760
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
JS. prototype.Method и this.Method
    #38779929
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T_STVв чем разница между
Как минимум во времени создания...
Первый вариант - метод объявляется в функции конструкторе. Второй вариант объявляет метод уже после создания функции-конструктора...
...
Рейтинг: 0 / 0
JS. prototype.Method и this.Method
    #38779952
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот демонстрация "основного" различия

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
var Obj = function () {
	/*
	// снять комментарий после запуска
	this.someMethod = function () {        
		alert(1);
	};
	*/
};
Obj.prototype.someMethod = function () {
	alert(2);
};
var Obj1 = function () {};
Obj1.prototype = new Obj
var Obj2 = function () {};
Obj2.prototype = new Obj

var o=new Obj;
var o1=new Obj1;
var o2=new Obj2;

o.someMethod();
o1.someMethod();
o2.someMethod();

Obj.prototype.someMethod = function () {
	alert(3);
};

o.someMethod();
o1.someMethod();
o2.someMethod();
...
Рейтинг: 0 / 0
JS. prototype.Method и this.Method
    #38779973
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у Кантора на кроликах хорошо описано :)
http://javascript.ru/tutorial/object/inheritance
...
Рейтинг: 0 / 0
JS. prototype.Method и this.Method
    #38780015
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-k2-у Кантора на кроликах хорошо описано :)
Скорее на хомяках...
...
Рейтинг: 0 / 0
JS. prototype.Method и this.Method
    #38780546
T_STV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-k2-у Кантора на кроликах хорошо описано :)
http://javascript.ru/tutorial/object/inheritance
Хм.. прочитал. Пишет:
авторАльтернативный подход заключается в добавлении методов объекту в его конструкторе.
...
Рейтинг: 0 / 0
JS. prototype.Method и this.Method
    #38780550
T_STV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaА вот демонстрация "основного" различия

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
var Obj = function () {
	/*
	// снять комментарий после запуска
	this.someMethod = function () {        
		alert(1);
	};
	*/
};
Obj.prototype.someMethod = function () {
	alert(2);
};
var Obj1 = function () {};
Obj1.prototype = new Obj
var Obj2 = function () {};
Obj2.prototype = new Obj

var o=new Obj;
var o1=new Obj1;
var o2=new Obj2;

o.someMethod();
o1.someMethod();
o2.someMethod();

Obj.prototype.someMethod = function () {
	alert(3);
};

o.someMethod();
o1.someMethod();
o2.someMethod();



Не понял. Типа нельзя переопределить метод, если он в конструкторе задан?
...
Рейтинг: 0 / 0
JS. prototype.Method и this.Method
    #38780555
T_STV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел ответ на свой вопрос тут http://habrahabr.ru/post/11673/
...
Рейтинг: 0 / 0
JS. prototype.Method и this.Method
    #38780588
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T_STVТипа нельзя переопределить метод, если он в конструкторе задан?
Он четко "привязывается" к своему объекту (экземпляру). Переопределить можно только у каждого экземпляра в отдельности.

Тут главное точно понимать "природу" конструктора с this и прототипа...
При объявлении чего-либо через прототип, при такой же смене - поменяется у всех объектов, кроме тех, кто сам его переопределил.
При объявлении в конструкторе переопределить что-либо можно только у конкретного объекта.

А вот чем пользоваться и в каком случае выбирать тот вариант или другой зависит от конкретных задач.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JS. prototype.Method и this.Method
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]