一个Javascript 的诡异报错

  前几天,突然间遇到了一个十分诡异的报错「没有见过」Uncaught TypeError: (intermediate value)(…) is not a function;之所以说这个报错很诡异,主要是因为我没有检查到什么问题>_<。当然,这个在Blog 记录的问题肯定是解决了。

  问题之所以得以解决,是因为已经有人在stackoverflow 上提问了。造成这个报错的原因是没能自动插入分号「没有匹配到Javascript 的自动插入分号规则」。

window.Glog = function(msg) {
  console.log(msg);
}

(function(win) {
  // ...
})(window);
window.Glog = function(msg) {
  console.log(msg);
}(function(win) {
  // ...
})(window);

  window.Glog 的赋值并没有以分号结尾,而且不满足自动插入分号规则;所以实际执行的时候,应该立即执行的函数作为参数传进去Glog 方法去执行,Glog 方法执行完再执行它的返回,并将window 传入。

您的浏览器已过时

要正常浏览本网站请升级您的浏览器。现在升级

×