JavaScript функция inherit() -- реализация, пример
Primary tabs
JS фактически обладает возможностью создавать новые объекты с произвольными прототипами - возможность создавать «наследников» от любых объектов:
// inherit() возвращает вновь созданный объект, наследующий свойства // объектапрототипа p. Использует функцию Object.create() из ECMAScript 5, // если она определена, иначе используется более старый прием. function inherit(p) { if (p == null) throw TypeError(); // p не может быть значением null if (Object.create) // Если Object.create() определена... return Object.create(p);// использовать ее. var t = typeof p;// Иначе выяснить тип и проверить его if (t !== "object" && t !== "function") // если не объект и не функция throw TypeError(); // бросаем исключение function f() {};// Определить фиктивный конструктор. f.prototype = p;// Записать в его свойство prototype ссылку на объект p. return new f();// Использовать f() для создания // "наследника" объекта p. }
Считается, что впервые была реализована Дугласом Крокфордом (Douglas Crockford) - как функция создающая новые объекты таким способом. См. http://javascript.crockford.com/prototyp...
- Log in to post comments
- 3332 reads