Javascript TypeError:something.changeBy不是函数
检查此代码:Javascript TypeError:something.changeBy不是函数,javascript,Javascript,检查此代码: var something = (function() { var countit = 0; function changeBy(val) { countit += val; } return { inc: function () { changeBy(1); }, value: function () { return countit
var something = (function() {
var countit = 0;
function changeBy(val) {
countit += val;
}
return {
inc: function () {
changeBy(1);
},
value: function () {
return countit;
}
};
})();
console.log(something.value());
something.inc();
console.log(something.value());
something.changeBy(2);
console.log(something.value());
问题是,something.changeBy(2)代码>不起作用。它说这不是一个函数:
TypeError: something.changeBy is not a function
一、 当然,通过这个事实可以理解,它与返回有关,但我不明白为什么会这样,显然希望您向我解释一下。您没有公开changeBy
方法。添加属性changeBy
ref原点函数
var something = (function() {
var countit = 0;
function changeBy(val) {
countit += val;
}
return {
changeBy:changeBy,
inc: function () {
changeBy(1);
},
value: function () {
return countit;
}
};
})();
有些东西没有changeBy
方法,因为您没有在返回的对象中返回它-add,changeBy:changeBy
,before代码>