Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Помогите разобрать код (https://javascript.ru/forum/node-js-io-js/59566-pomogite-razobrat-kod.html)

Splik 16.11.2015 22:11

Помогите разобрать код
 
'use strict';
var _get = function get(_x, _x2, _x3) {
    var _again = true;
    _function: while (_again) {
        var object = _x, property = _x2, receiver = _x3;
        desc = parent = getter = undefined;
        _again = false;
        if (object === null)
            object = Function.prototype;
        var desc = Object.getOwnPropertyDescriptor(object, property);
        if (desc === undefined) {
            var parent = Object.getPrototypeOf(object);
            if (parent === null) {
                return undefined;
            } else {
                _x = parent;
                _x2 = property;
                _x3 = receiver;
                _again = true;
                continue _function;
            }
        } else if ('value' in desc) {
            return desc.value;
        } else {
            var getter = desc.get;
            if (getter === undefined) {
                return undefined;
            }
            return getter.call(receiver);
        }
    }
};

Во-первых, так толком и не понял для чего надо сие чудо.

Во-вторых, "desc = parent = getter = undefined;" - зачем до всего им явно указывают "undefined", учитывая, что ниже им всё равно присвоится значение, да и "var" ниже им прописаны, следовательно "undefined" уже закинуты.

В-третьих, странная запись в теле функции:
"_function: while (_again)"


Часовой пояс GMT +3, время: 13:31.