Справочник javascript: prototype

Форум

Учебник Node.JS скринкаст Стандарт языка

Справочник

Discord чат

 
Статьи Тест знаний Аналоги функций PHP  

prototype

Прототип объекта

Описание, примеры

Все объекты в javascript наследуют от Object, и потому имеют свойство prototype.

Как правило, свойство prototype используется для предоставления базового набора функциональных возможностей классу объектов. Новые экземпляры объекта "наследуют" поведение прототипа, присвоенного этому объекту.

Предположим, что нам требуется добавить в объект Array метод, который возвращает значение наибольшего элемента массива. Для этого объявляется функция, которая добавляется к объекту Array.prototype, а затем используется.

Пример: Добавляем метод объектам Array

function array_max( ){
   var i, max = this[0];
   for (i = 1; i < this.length; i++) {
   if (max < this[i])
   max = this[i];
   }
   return max;
}
Array.prototype.max = array_max;

// а теперь создадим новый массив 
// и запустим новый метод
var x = [ 1, 2, 3, 4, 5, 6]
var y = x.max( );

Автор: Questioner, дата: 7 марта, 2012 - 13:47

#permalink

В obj.prototype как получить не все экземпляры этого класса, а конкретный экземпляр, используемый юзером сейчас?


Автор: Гость (не зарегистрирован), дата: 12 июня, 2012 - 19:15

#permalink

По-моему в код опечатка или ошибка

function array_max( ){
   var i, max = this[0];
   for (i = 1; i < this.length; i++) {
   if (max < this[i])
   max = this[i];
   }
   return max;
}
Array.prototype.max = array_max<strong>()</strong>;

// а теперь создадим новый массив 
// и запустим новый метод
var x = [ 1, 2, 3, 4, 5, 6]
var y = x.max( );

Автор: Гость (не зарегистрирован), дата: 17 декабря, 2012 - 17:25

#permalink

Ребята, читайте спецификацию, а не такие вот "руководства":
"... объекты могут создаваться различными способами, в том числе – посредством буквенного обозначения или с помощью конструкторов, которые создают объекты и выполняют код, инициализирующий их полностью или частично путем присвоения их свойствам начальных значений. Каждый конструктор является функцией, которая обладает свойством “prototype”, используемым для реализации прототипного наследования и разделяемых свойств".
У объекта Javascript (не путать с функцией Object()) нет свойства prototype! Есть неявное свойство, которое ссылается на constructor.prototype. Таким образом, prototype можно задать только для конструктора объекта, но не для самого объекта.


Автор: haos2100, дата: 1 марта, 2013 - 10:00

#permalink

Видимо я не до конца понял работу свойства prototype, подскажите пожалуйста где ошибка. Вот мой код:
var ivan = {
im: "Иван",
}

ivan.prototype.say_name = function(name)
{
this.name = name;
alert("Привет, меня зовут "+this.name);
}

ivan.say_name(ivan.im);


Автор: isxaker (не зарегистрирован), дата: 18 июня, 2014 - 09:24

#permalink

Скажи пожалуйста, в чем разница

function foo(a){
   this.a = a;
}

a.prototype.getA = function(){return this.a;}

AND

function foo(a){
   this.a = a;
   this.getA = function(){return this.a;}
}

Автор: axmed2004, дата: 2 ноября, 2014 - 13:08

#permalink

почему не работает такая конструкция?

Array.prototype.fn={
	in_array:function(el){
		a=0
		for(i=0;i<this.length;i++){
			if(this[i]==el)
				a++
		}
		return a>0
	}
}

a=["a","b","c"]
document.write(a.fn.in_array("b"))

 
Поиск по сайту
Содержание

Дерево всех статей

Последние темы на форуме
Forum