我的代码如下。
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
没有返回所需的值?
答案 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()
;