Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.06.2011, 23:14
Кандидат Javascript-наук
Отправить личное сообщение для TicTac Посмотреть профиль Найти все сообщения от TicTac
 
Регистрация: 07.09.2010
Сообщений: 133

Свойства/методы класса
Вычитал в книге что есть в JavaScript свойства/методы класса, замечу речь идет не о свойствах/методах объекта, а самого класса(конструктора, кому как). Появилось пару вопросов.

Даже есть пример
function Circle(radius) {
			this.r = radius;
		}
		Circle.prototype.area = function( ) { return Circle.PI * this.r * this.r; }

		// Cвойство класса
		Circle.PI = 3.14159;
		// Метод класса
		Circle.max = function(a,b) {
		    if (a.r > b.r) return a;
			else return b;
		}
		
		var c = new Circle(1.0);      // Создание экземпляра класса Circle
		c.r = 2.2;                    // Установка свойства экземпляра r 
		var a = c.area();             // Вызов метода экземпляра area()
		var x = Math.exp(Circle.PI);  // Обращение к свойству PI класса для выполнения расчетов
		var d = new Circle(1.2);      // Создание другого экземпляра класса Circle
		var bigger = Circle.max(c,d); // Вызов метода класса max()


речь идет о
// Cвойство класса
		Circle.PI = 3.14159;
		// Метод класса
		Circle.max = function(a,b) {
		    if (a.r > b.r) return a;
			else return b;
		}


Вот какие вопросы
1. Зачем нужно создавать свойство класса, метод класса если:
- они просто заменяют переменные, или просто свойста/методы к которым я тоже мог обратится и получить значение/результат работы. То есть я мог записать PI просто в переменную + создать отдельную функцию вместо метода класса и используй не хочу.(только если через свойста/методы, тут конечно это минус так как у каждого объекта своя копия свойств/методов, а так выходит одни свойста/методы класса на все объекты).
- у методов класса нет связи между объектами, и не вызываются от объектов, и не имеют ничего особенного что их отличит от обычной функции, в которую я могу тоже просто передать два нужных мне объекта и ф-ция отработает с тем что мне нужно.

Единственное отличие что я понял, это что они закреплены за конструктором объектом ф-ции, а не валяются где попало, а всегда в конструкторе. И вызываются соостветсвенно через него. + их минус это то что они перезаписываемые, что может нечайно похерить расчеты так как используется одно на всех. Я что-то упустил? Это все так?) В чем же их прелесть чтобы акцентировать на это внимание

2. Это экзотика программирования на JavaScript?

Спасибо, если что-то не так написал, заранее прошу прощения просто хочется все познать что и как

Последний раз редактировалось TicTac, 27.06.2011 в 23:19.
Ответить с цитированием
  #2 (permalink)  
Старый 28.06.2011, 00:48
Аватар для SlavaPav
Аспирант
Отправить личное сообщение для SlavaPav Посмотреть профиль Найти все сообщения от SlavaPav
 
Регистрация: 25.02.2010
Сообщений: 57

Это упрощенная версия создания статических свойств\методов. Google this.
Ответить с цитированием
  #3 (permalink)  
Старый 29.06.2011, 23:26
Кандидат Javascript-наук
Отправить личное сообщение для TicTac Посмотреть профиль Найти все сообщения от TicTac
 
Регистрация: 07.09.2010
Сообщений: 133

да не густо

я такое еще видел в функцию записывали так значение тоже для эмуляции стат. свойства. Тут в конструктор.
Ответить с цитированием
  #4 (permalink)  
Старый 30.06.2011, 12:22
Интересующийся
Отправить личное сообщение для Cariño Посмотреть профиль Найти все сообщения от Cariño
 
Регистрация: 19.04.2011
Сообщений: 9

Достоинство таких свойств и методов, в том, что они логически связаны с классом
Ответить с цитированием
  #5 (permalink)  
Старый 30.06.2011, 14:49
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

класс используется как пространство имён, чтобы не гадить куда попало
__________________
.ня
Ответить с цитированием
  #6 (permalink)  
Старый 03.07.2011, 14:53
Кандидат Javascript-наук
Отправить личное сообщение для TicTac Посмотреть профиль Найти все сообщения от TicTac
 
Регистрация: 07.09.2010
Сообщений: 133

спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов конкретной функции класса на php AJAX запросом Slavenin AJAX и COMET 8 03.06.2011 22:47
Как изменить свойство css у всех элементов одного класса AlexJ Events/DOM/Window 7 19.03.2011 06:25
Как изменить параметр класса с помощью JS? Shitbox2 Events/DOM/Window 5 07.03.2011 20:52
измененить свойство базового класса nikolaich ExtJS 11 06.07.2010 16:50
передача переменой класса Hugo_O Общие вопросы Javascript 6 16.06.2010 09:47