私人功能不归还价值

时间:2013-08-16 12:11:09

标签: javascript

我的代码如下。

var Main = function () {
    var a, b, c, d;
    a = 1;
    b = true;
    c = undefined;

    var _private = function () {
        return 'Function with Private acceess';
    };

    this.getPublic = function () {
        return 'Function with Public access';
    };

    this.getPrivate = function () {
        _private();
    };

};

var o = new Main();
console.log(o.getPublic());
console.log(o.getPrivate());

在上面的代码中,我尝试通过公共方法Main访问o对象getPrivate()的私有方法。 但在控制台中结果是

undefined

为什么_private没有返回所需的值?

4 个答案:

答案 0 :(得分:7)

您忘记了return声明。请尝试以下方法:

this.getPrivate = function () {
    return _private();
};

如果没有从Javascript函数显式返回值,则认为该函数返回undefined;不会发出警告。

答案 1 :(得分:2)

您忘记“返回”该值。

this.getPrivate = function () {
    return _private();
};

答案 2 :(得分:2)

哎呀..你忘了回报价值......试试这个

var Main = function () {
    var a, b, c, d;
    a = 1;
    b = true;
    c = undefined;

    var _private = function () {
        return 'Function with Private acceess';
    };

    this.getPublic = function () {
        return 'Function with Public access';
    };

    this.getPrivate = function () {
        return _private();
    };

};

var o = new Main();
console.log(o.getPublic());
console.log(o.getPrivate());

答案 3 :(得分:0)

像这样更改return _private();