Object
- функция-конструктор. Как и все функции в JavaScript, это объект, и вы можете прикреплять к нему свойства. Эти свойства могут быть функциями. Так поступаем
Object.myMethod = function () { };
присоединяет myMethod
к функции конструктора Object
, что означает, что вы можете вызвать его так:
Object.myMethod();
Object.prototype
- прототип, используемый в качестве основы для всех объектов JavaScript. Это сам по себе объект, и поэтому вы снова можете прикреплять к нему свойства. Разница в том, что свойства, прикрепленные к прототипу, наследуются прототипом всеми объектами через их внутреннюю [[Prototype]]
ссылку, поэтому возможно что-то вроде этого:
Object.prototype.myMethod = function () { };
var obj = {};
obj.myMethod();
var otherObj = { something: "else" };
otherObj.myMethod();
var objectViaConstructor = new Object();
objectViaConstructor.myMethod();
var instanceOfSomethingThatInheritsFromObject = new XMLHttpRequest();
instanceOfSomethingThatInheritsFromObject.myMethod();
Обратите внимание, что большая часть вышеизложенного применяется к произвольным функциям-конструкторам, за исключением того, что вы не получаете особый синтаксис литерала объекта, а Object
является особенным в том смысле, что все (вплоть до примера XMLHttpRequest
) наследуется от него. Так:
function MyConstructor() { }
MyConstructor.staticMethod = function () { };
MyConstructor.prototype.method = function () { };
MyConstructor.staticMethod();
var myConstructed = new MyConstructor();
myConstructed.method();
person
Domenic
schedule
19.10.2011