Технически, JavaScript не предлагает множественное наследование. Каждый объект имеет четко определенный единственный объект-прототип и, следовательно, «цепочку прототипов».
Однако любой объект можно дополнить дополнительными методами, так называемыми "раскрытиями". Таким образом, вы можете перебрать коллекцию методов и по отдельности добавить их во вновь создаваемые объекты. Такая коллекция называется "миксин".
Несколько фреймворков предлагают миксины, например:
- qooxdoo
- ExtJS
- MooTools
- ...
Все они работают примерно одинаково.
Обратите внимание, что это не настоящее наследование, поскольку изменения в миксине не будут отражены в объектах.
Например:
var mixin = {
method: function () {
console.log('Hello world!');
}
};
var foo = new fun1();
foo.method = mixin.method;
foo.method(); // Hello world!
mixin.method = function () { console.log('I changed!') };
foo.method(); // Hello world!