Какая старая статья... И всё же хочется кое-что сказать.
Во-первых JavaScript не класс-ориентированный язык программирования а прототипный (что это значит можно почитать на
вики) и соответственно практики из класс-ориентированного ООП в принципе не совсем для него подходят, хотя если вам нужен некий аналог интерфейса, то могу предложить следующее решение:
// интерфейс
var interfaceA = {
methodA: methodForMatchAPlusB,
methodB: methodForMatchAMinusB,
methodC: methodC
};
// основной код
console.info('a + b = %d', interfaceA.methodA(1, 2));
console.info('a - b = %d', interfaceA.methodB(7, 5));
interfaceA.methodC(7, 4);
//объявление функций
function methodForMatchAPlusB(a, b) {
return a+b;
}
function methodForMatchAMinusB(a, b) {
return a - b;
}
function methodC(a, b) {
var result = interfaceA.methodA(a, b) * interfaceA.methodB(a, b);
console.info('(a+b)*(a-b) = %d', result);
}
Или можно тоже самое оформить ещё лучше:
var objectA = new function() {
// интерфейс
this.methodA = methodForMatchAPlusB;
this.methodB = methodForMatchAMinusB;
this.methodC = methodC;
//объявление функций
function methodForMatchAPlusB(a, b) {
return a+b;
}
function methodForMatchAMinusB(a, b) {
return a - b;
}
function methodC(a, b) {
var result = objectA.methodA(a, b) * objectA.methodB(a, b);
console.info('(a+b)*(a-b) = %d', result);
}
};
// основной код (возможно уже в другом файле)
console.info('a + b = %d', objectA.methodA(1, 2));
console.info('a - b = %d', objectA.methodB(7, 5));
objectA.methodC(7, 4);