А у экземпляров Numbering-то setNumber вызывается?
Вы, вероятно, сначала описываете Numbering и его прототип, а потом наследуетесь. Так делать неправильно, ибо extend перезаписывает прототип.
var oop = {
extend: function (Child, Parent) {
var F = function () {};
F.prototype = Parent.prototype;
Child.prototype = new F();
Child.prototype.constructor = Child;
Child.superclass = Parent.prototype;
this.mixin(Child, Parent);
},
/**
* @param {type} dst
* @param {type} src
* @returns {undefined}
*/
mixin: function (dst, src) {
var tobj = {};
for (var x in src) {
if ((typeof tobj[x] == "undefined") || (tobj[x] != src[x])) {
dst[x] = src[x];
}
}
if (document.all && !document.isOpera) {
var p = src.toString;
if (typeof p == "function" && p != dst.toString && p != tobj.toString &&
p != "\nfunction toString() {\n [native code]\n}\n") {
dst.toString = src.toString;
}
}
}
};
function netBuilder() {
}
function Numbering() {
}
*!*
oop.extend(Numbering, netBuilder);
*/!*
// важно отнаследоваться здесь, а не после объявления прототипа!
Numbering.prototype.setNumber = function() {
alert('Numbering#setNumber');
}
function NumberingMethodDefault() {
}
oop.extend(NumberingMethodDefault, Numbering);
new NumberingMethodDefault().setNumber();