Как понять код JavaScript, сгенерированный ключевым словом `extends` в CoffeeScript

Это код JavaScript, сгенерированный ключевым словом CoffeeScript extends. Как настраивается цепочка прототипов?

var __hasProp = Object.prototype.hasOwnProperty,
__extends = function(child, parent) { 
    for (var key in parent) { 
        if (__hasProp.call(parent, key)) child[key] = parent[key]; 
    } 
    function ctor() { this.constructor = child; } 
    ctor.prototype = parent.prototype; 
    child.prototype = new ctor; 
    child.__super__ = parent.prototype; 
    return child; 
};
5
задан powerboy 3 June 2012 в 02:05
поделиться