MyTetra Share
Делитесь знаниями!
Классы в Java Script: Методы
Время создания: 05.01.2011 12:05
Раздел: Компьютер - Программирование - Java Script - Классы в JavaScript
Запись: xintrea/mytetra_syncro/master/base/0000003376/text.html на raw.github.com

Добавление метода в прототип

Метод объекта создается следующим образом:

[Имя_конструктора].prototype.[имя_метода]=function () { ... }

При вызове метод имеет доступ ко всем данным "своего" объекта. Для этого в javascript (как, впрочем, и во многих других языках) используется ключевое слово this.

Например:

Animal.prototype.move = function(n)

{

this.distance = n

alert(this.distance)

}

Теперь объект сможет "передвигаться":

var animal = new Animal("животное")

animal.move(3) // distance=3

animal.move(4) // distance=4

При вызове animal.move, интерпретатор находит нужный метод в прототипе animal: Animal.prototype.move и выполняет его, устанавливая this в "текущий" объект.

Добавление метода в конструкторе

Альтернативный подход заключается в добавлении методов объекту в его конструкторе. Объявление move в классе Animal при таком подходе выглядело бы вот так:

function Animal(n) {

// конструируем объект

.....

// добавляем методы

this.move = function(n) {

this.distance = n

alert(this.distance)

}

}

В наболее распространенных javascript-библиотеках используется первый подход, т.е добавление методов в прототип.

 
MyTetra Share v.0.59
Яндекс индекс цитирования