Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TypeError:something.changeBy不是函数_Javascript - Fatal编程技术网

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