0

在下面的代码中,如何在 startPoint 中调用getStartPoint() ?

var obj = (function () {
    return {
        defaults: {
            prop: {
                getStartPoint: function () {
                    // more login ...
                },
                getEndPoint:   function () {
                    // more login ...
                },
                startPoint: this.getStartPoint(),
                endPoint:   this.getEndPoint(),
            }
        }
    };
})();

我收到错误

Uncaught TypeError: Object ... has no method 'getStartPoint'

在所有这些中:getStartPoint()、this.getStartPoint()、obj.defaults.prop.getStartPoint()

4

1 回答 1

0

一种可能的解决方案:

var obj = (function () {
    function getStartPoint() {
        console.log("getStartPoint");
    }
    function getEndPoint() {
        console.log("getEndPoint");
    }
    return {
        defaults: {
            prop: {
                getStartPoint: getStartPoint,
                getEndPoint: getEndPoint,
                startPoint: getStartPoint(),
                endPoint: getEndPoint()
            }
        }
    };
})();

其他:

function Obj() {
    if (!(this instanceof Obj)) return new Obj();
    this.defaults = {
        prop: {
            startPoint: this.defaults.prop.getStartPoint(),
            endPoint: this.defaults.prop.getEndPoint()
        }
    };
}

Obj.prototype = {
    defaults: {
        prop: {
            getStartPoint: function () {
                console.log("getStartPoint");
            },
            getEndPoint: function () {
                console.log("getEndPoint");
            }
        }
    }
};

var obj = new Obj();
于 2013-10-27T05:43:18.950 回答