Конструктор в js
Привет,
народ как правильно реализовать конструктор в котором не только инициализация переменных, но функции обрабатывают эти переменные. function A(obx){ this.x= obx.x; this.y. obx.y; this.f1 = function (); //не то } var a = new A(t); //все методы внутри //a.f1 - так не подходит |
Синтаксическая ошибка в 3 строчке: после у должно быть "=", а не ".". Ну и методы лучше в прототип выносить. В этом и смысл прототипного наследования: методы, константные свойства и свойства по-умолчанию - в прототип.
|
Синтаксическая ошибка в 3 строчке: после у должно быть "=", а не ".". ну это опечатка,
прототип ясно Вопрос не этом, как в JS - 'классе' правильно сделать конструктор, в котором как то обрабатываются переменные A(obx)то есть в obx есть несколько своих полей и они обрабатываться именно в конструкторе var a = new A(t); то есть в 'a' - есть результат этой обработки Такое можно реализовать? |
gh321, тут всё от целей зависит. Во-первых, почему свойства передаваемого аргумента именно в функции обрабатывать? Но это не важно: функция - так функция. Тут два варианта. Если логика приватного характера, то так:
function A(object) { this.x = process(object.x); function process(x) { /* ... */ } }А можно обрабатывающую функцию в прототип запихнуть. Тогда её можно будет перегрузить в производном классе: function A(object) { this.x = this.process(object.x); } A.prototype.process = function () { /* ... */ }; function B() { A.apply(this, arguments); } B.prototype = Object.create(A.prototype); B.prototype.process = function () { /* ... */ }; |
Часовой пояс GMT +3, время: 22:50. |