Как получить доступ к переменным класса в конструкторе?(node.js ООП) - PullRequest
2 голосов
/ 17 декабря 2011

Есть ли какой-нибудь способ доступа к переменной класса в конструкторе?

var Parent = function() {
  console.log(Parent.name);
};
Parent.name = 'parent';

var Child = function() {
  Parent.apply(this, arguments);
}
require('util').inherits(Child, Parent);
Child.name = 'child';

Т.е. конструктор Parent должен регистрировать "parent", а конструктор child должен регистрировать "child" на основе одной некоторой переменной класса в каждом классе.

Приведенный выше код не работает, как я ожидал.

1 Ответ

1 голос
/ 17 декабря 2011

Вот оно в ванили JS:

var Parent = function() {
  console.log(this.name);
};
Parent.prototype.name = 'parent';

var Child = function() {
  Parent.apply(this, arguments);
}

Child.prototype = new Parent();
Child.prototype.constructor = Child;
Child.prototype.name = 'child';

var parent = new Parent();
var child = new Child();

utils.inherits просто упрощает

Child.prototype = new Parent();
Child.prototype.constructor = Child;

в

util.inherits(Child, Parent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...