From c058fa0fb22dc40ef0225b21a97578cddd0aaffa Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:51:05 +0100 Subject: unslug ru: move --- .../reference/global_objects/object/index.html | 205 +++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 files/ru/conflicting/web/javascript/reference/global_objects/object/index.html (limited to 'files/ru/conflicting/web/javascript/reference/global_objects/object') diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/object/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/object/index.html new file mode 100644 index 0000000000..aaa398171d --- /dev/null +++ b/files/ru/conflicting/web/javascript/reference/global_objects/object/index.html @@ -0,0 +1,205 @@ +--- +title: Object.prototype +slug: Web/JavaScript/Reference/Global_Objects/Object/prototype +tags: + - JavaScript + - Object + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Object +translation_of_original: Web/JavaScript/Reference/Global_Objects/Object/prototype +--- +
{{JSRef("Global_Objects", "Object")}}
+ +

Сводка

+ +

Свойство Object.prototype представляет объект прототипа {{jsxref("Global_Objects/Object", "Object")}}.

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Описание

+ +

Все объекты в JavaScript являются потомками {{jsxref("Global_Objects/Object", "Object")}}; все объекты наследуют методы и свойства из прототипа объекта Object.prototype, хотя они и могут быть переопределены (за исключением объекта Object с прототипом null, то есть, созданным вызовом Object.create(null)). Например, прототипы других конструкторов переопределяют свойство constructor и предоставляют свои собственные методы {{jsxref("Object.prototype.toString()", "toString()")}}. Изменения в объекте прототипа {{jsxref("Global_Objects/Object", "Object")}} распространяются на все объекты до тех пор, пока свойства и методы, учитывающие эти изменения, не переопределяются дальше по цепочке прототипов.

+ +

Свойства

+ +
+
{{jsxref("Object.prototype.constructor")}}
+
Определяет функцию, создающую прототип объекта.
+
{{jsxref("Object.proto", "Object.prototype.__proto__")}} {{non-standard_inline}}
+
Указывает на объект, который использовался в качестве прототипа при инстанцировании объекта.
+
{{jsxref("Object.noSuchMethod", "Object.prototype.__noSuchMethod__")}} {{non-standard_inline}}
+
Позволяет определить функцию, выполняющуюся при вызове в качестве метода неопределённого члена объекта.
+
{{jsxref("Object.count", "Object.prototype.__count__")}} {{obsolete_inline}}
+
Использовалось для возврата количества перечисляемых свойств, определённых напрямую на пользовательском объекте, но было удалено.
+
{{jsxref("Object.parent", "Object.prototype.__parent__")}} {{obsolete_inline}}
+
Использовалось для указания контекста объекта, но было удалено.
+
+ +

Методы

+ +
+
{{jsxref("Object.defineGetter", "Object.prototype.__defineGetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
+
Ассоциирует функцию со свойством, которое, при доступе к нему, выполняет эту функцию и возвращает её возвращаемое значение.
+
{{jsxref("Object.defineSetter", "Object.prototype.__defineSetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
+
Ассоциирует функцию со свойством, которое, при его установке, выполняет эту функцию, изменяющую свойство.
+
{{jsxref("Object.lookupGetter", "Object.prototype.__lookupGetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
+
Возвращает функцию, ассоциированную с указанным свойством методом {{jsxref("Object.defineGetter", "__defineGetter__")}}.
+
{{jsxref("Object.lookupSetter", "Object.prototype.__lookupSetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
+
Возвращает функцию, ассоциированную с указанным свойством методом {{jsxref("Object.defineSetter", "__defineSetter__")}}.
+
{{jsxref("Object.prototype.hasOwnProperty()")}}
+
Возвращает логическое значение, указывающее, содержит ли указанное свойство непосредственно объект, или он унаследовал его по цепочке прототипов.
+
{{jsxref("Object.prototype.isPrototypeOf()")}}
+
Возвращает логическое значение, указывающее, состоит ли указанный объект в цепочке прототипов объекта, на котором был вызван данный метод.
+
{{jsxref("Object.prototype.propertyIsEnumerable()")}}
+
Возвращает логическое значение, указывающее, установлен ли внутренний атрибут ECMAScript DontEnum.
+
{{jsxref("Object.prototype.toSource()")}} {{non-standard_inline}}
+
Возвращает строку, содержащую исходный код объекта в литеральной форме, представляющего объект, на котором был вызван данный метод; вы можете использовать это значение для создания нового объекта.
+
{{jsxref("Object.prototype.toLocaleString()")}}
+
Вызывает {{jsxref("Object.toString", "toString()")}}.
+
{{jsxref("Object.prototype.toString()")}}
+
Возвращает строковое представление объекта.
+
{{jsxref("Object.prototype.unwatch()")}} {{non-standard_inline}}
+
Удаляет точку наблюдения (watchpoint) со свойства объекта.
+
{{jsxref("Object.prototype.valueOf()")}}
+
Возвращает значение примитива указанного объекта.
+
{{jsxref("Object.prototype.watch()")}} {{non-standard_inline}}
+
Добавляет точку наблюдения (watchpoint) к свойству объекта.
+
{{jsxref("Object.prototype.eval()")}} {{obsolete_inline}}
+
Использовался для вычисления строки с JavaScript-кодом в контексте указанного объекта, но был удалён.
+
+ +

Примеры

+ +

Поскольку Javascript, строго говоря, не имеет объекты подклассов, прототип является полезным обходным путём создания объекта «базового класса» из определённых функций, которые выступают в роли объектов. Например:

+ +
var Person = function(name) {
+    this.name = name;
+    this.canTalk = true;
+    this.greet = function() {
+        if (this.canTalk) {
+            console.log('Привет, я ' + this.name);
+        }
+    };
+};
+
+var Employee = function(name, title) {
+    this.name = name;
+    this.title = title;
+    this.greet = function() {
+        if (this.canTalk) {
+            console.log('Привет, я ' + this.name + ', ' + this.title);
+        }
+    };
+};
+Employee.prototype = new Person();
+
+var Customer = function(name) {
+    this.name = name;
+};
+Customer.prototype = new Person();
+
+var Mime = function(name) {
+    this.name = name;
+    this.canTalk = false;
+};
+Mime.prototype = new Person();
+
+var bob = new Employee('Боб', 'Строитель');
+var joe = new Customer('Джо');
+var rg = new Employee('Ред Грин', 'Разнорабочий');
+var mike = new Customer('Майк');
+var mime = new Mime('Мим');
+bob.greet();
+joe.greet();
+rg.greet();
+mike.greet();
+mime.greet();
+
+ +

Вывод будет следующим:

+ +
Привет, я Боб, Строитель
+Привет, я Джо
+Привет, я Ред Грин, Разнорабочий
+Привет, я Майк
+
+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
ECMAScript 1-е издание.СтандартИзначальное определение. Реализована в JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.2.3.1', 'Object.prototype')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-object.prototype', 'Object.prototype')}}{{Spec2('ES6')}}
+ +

Совместимость с браузерами

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
ВозможностьChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
ВозможностьAndroidChrome для AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Базовая поддержка{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
-- cgit v1.2.3-54-g00ecf