var names = ["webgl", "experimental-webgl", "webkit-3d", "moz-webgl"];
gl = null;
for (var ii = 0; ii < names.length; ++ii) {
try {
gl = canvas.getContext(names[ii]);
} catch(e) {}
if (gl) {
break;
}
}
Надо не "быть не против понять", а лезть в гугл/википедию. Тостер для случаев, когда гугл/википедия не дают чётких ответов. Ну не верю я, что Вы не смогли найти внятного объяснения наследования. Скорее не захотели.