The source code

    /**
     * @ignore
     * Setup component namespace.
     * @author yiminghe@gmail.com
     */
    KISSY.add("component/base/impl", function (S, UIBase, Manager) {
        /**
         * @class KISSY.Component
         * @singleton
         * Component infrastructure.
         */
        var Component = {
            Manager: Manager,
            UIBase: UIBase
        };

        /**
         * Create a component instance using json with xclass.
         * @param {Object} component Component's json notation with xclass attribute.
         * @param {String} component.xclass Component to be newed 's xclass.
         * @param {KISSY.Component.Controller} self Component From which new component generated will inherit prefixCls
         * if component 's prefixCls is undefined.
         * @member KISSY.Component
         *
         *  for example:
         *
         *      create({
         *          xclass:'menu',
         *          children:[{
         *              xclass:'menuitem',
         *              content:"1"
         *          }]
         *      })
         */
        Component.create = function (component, parent) {
            var childConstructor, xclass;
            if (component && !component.isController && !component.xclass) {
                component.xclass = parent.get('defaultChildXClass');
            }
            if (component && (xclass = component.xclass)) {
                if (parent && !component.prefixCls) {
                    component.prefixCls = parent.get("prefixCls");
                }
                childConstructor = Manager.getConstructorByXClass(xclass);
                if (!childConstructor) {
                    S.error("can not find class by xclass desc : " + xclass);
                }
                component = new childConstructor(component);
            }
            return component;
        };

        return Component;
    }, {
        requires: ['./uibase', './manager']
    });