这两个 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. 我现在明白为什么有些人喜欢在最前面加一个分号了
转载于:https://blog.51cto.com/6221123/1102776