Я хотел бы присвоить свойство прототипу функции и использовать это свойство до установки прототипа в качестве прототипа функции (трудно объяснить). Если бы я делал это на Java, я бы просто создал публичную статическую конечную переменную в базовом классе. Например ...Использование свойств прототипа перед прототипом функции установлено
function Foo(a, b) {
this.a = a;
this.b = b;
}
function Bar() {
this.prototype.A = 100;
this.prototype.B = 250;
Foo.call(this, this.prototype.A, this.prototype.B);
}
Bar.prototype = Object.create(Foo); // Bar.A and Bar.B are now undefined, not what I
// want to happen.
Потенциальная реализация # 1 ...
function Foo(a, b) {
this.a = a;
this.b = b;
}
var tempA = 100;
var tempB = 250;
function Bar() {
Foo.call(this, tempA, tempB);
}
Bar.prototype = Object.create(Foo);
Bar.prototype.A = tempA;
Bar.prototype.B = tempB;
Потенциальная реализация # 2 ...
function Foo(a, b) {
this.a = a;
this.b = b;
}
var barPrototype = Object.create(Foo);
barPrototype.A = 100;
barPrototype.B = 250;
function Bar() {
Foo.call(this, barPrototype.A, barPrototype.B);
}
Bar.prototype = barPrototype;
Кто-нибудь есть предпочтения в отношении которых реализация лучше? Или есть более элегантный способ (без временных переменных) для этого?
Что вы пытаетесь достичь? Почему бы просто не превратить 'A' и' B 'частные переменные в конструктор' Bar', и почему бы вам просто не вызвать Foo напрямую с этими переменными? –
В основном я пытаюсь создать константы 'A' и' B' для панели функций. Я хочу иметь возможность проверять значение 'A' и' B' внешне. – hendryau