Конструктор в 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, время: 23:39. |