Object.prototype
Object.prototype - прототип об'єкта Object.
Синтаксис:
Object.prototype
Опис:
prototype властивість об'єкта Object яка повертає прототип об'єкта.
Прототип - це звичайний об'єкт, який ділиться своєю поведінкою з іншими об'єктами - тобто стає батьком об'єкта. Прототип використовується в основному для наслідування.
Майже всі об'єкти в JavaScript є екземплярами Object і успадковують властивості, методи від Object.prototype. Хоча ці властивості можуть бути перевизначені.
Зміни в Object.prototype об'єкта розглядаються на всіх об'єктах через прототип ланцюжка, якщо властивості і методи не будуть перезаписані далі по ланцюжку прототипів.
Object.prototype знаходиться на вершині ланцюжка прототипів.
Всі об'єкти в JavaScript є нащадками Object; всі об'єкти успадковують методи і властивості з прототипу об'єкта Object.prototype, хоча вони і можуть бути перевизначені. Наприклад, прототипи інших конструкторів скасовують властивість constructor і надають свої власні методи toString().
Властивості:
- Object.constructor - Визначає функцію, яка створює прототип об'єкта.
- Object.__ proto__ - Вказує на об'єкт, який використовувався в якості прототипу при інстанцірувані об'єкта.
- Object.__noSuchMethod__ - дозволяє визначити функцію, виконуються при виклику в якості методу не певного члена об'єкта.
- Object.__ count__ - використовувалося для повернення кількості перерахованих властивостей, певних безпосередньо на призначеному для користувача об'єкті, але було видалено.
- Object.__ parent__ -використовувалося для вказівки контексту об'єкта, але було видалено.
Методи:
- Object.__defineGetter__() - асоціює функцію з властивістю, яка, при доступі до нього, виконує цю функцію і повертає її значення, що повертається.
- Object.__defineSetter__() - асоціює функцію з властивістю, яке, при його установці, виконує цю функцію, змінює властивість.
- Object.__ lookupGetter__() - повертає функцію, пов'язану із зазначеним властивістю методом __defineGetter__.
- Object.__lookupSetter__() - Повертає функцію, пов'язану із зазначеним властивістю методом __defineSetter__.
- Object.hasOwnProperty() - чи містить вказане властивість безпосередньо об'єкт, або він успадкував його по ланцюжку прототипів.
- Object.isPrototypeOf() - чи перебуває зазначений об'єкт в ланцюжку прототипів об'єкта, на якому був викликаний даний метод.
- Object.propertyIsEnumerable() - повертає логічне значення, яке вказує, чи встановлений внутрішній атрибут ECMAScript DontEnum.
- Object.toSource() - повертає рядок, що містить вихідний код об'єкта.
- Object.toLocaleString() - повертає рядкове представлення об'єкту згідно локалі.
- Object.toString() - повертає строкове представлення об'єкту.
- Object.unwatch() - видаляє точку спостереження (watchpoint) зі властивості об'єкта.
- Object.valueOf() - повертає значення примітиву зазначеного об'єкта.
- Object.watch() - додає точку спостереження (watchpoint) до властивості об'єкта.
Приклад:
Object.prototype.toString=function(){return "текст об'єкт"};
var ob = new Object();
alert( ob.toString() );
Додаємо новий метод для всіх об'єктів нащадків:
Object.prototype.toText=function(){return this.toString();};
var n = new Number(5);
alert( n.toText() );
Array.prototype.suma=function(){
var suma=this[0];
for(var i=1;i<this.length;i++)suma+=this[i];
return suma;
}
var mas=new Array(1,2,3);
alert( mas.suma() );