这两个 js 文件都没有语法错误,单独都检查了几遍,没有问题。但连接到一起就会出问题。

humane.js 是这种形式:

    function(name, context) {
        ......
    }('humane', this, function() {
        ......
    })

t.js 是这种形式:

    (function() {
        ......
    })();

一看 t.js 这种写法很普通啊,没有任何问题。但注意到 humane.js 的最后没有分号。

于是,把这两个文件连起来的时候,js 解释器认为 humane.js 最后那里返回了一个函数,然后紧接着是调用这个函数。但实际上,humane.js 最后肯定没有返回值,所以就出了“undefined is not a function”。

总结:

1. 写 js 最好还是加分号
2. 我现在明白为什么有些人喜欢在最前面加一个分号了