【问题标题】:window.onload = function(){}; limited to contain certain amount of lines?window.onload = 函数(){};仅限于包含一定数量的行?
【发布时间】:2014-12-11 21:52:59
【问题描述】:

我有一个非常奇怪的问题。我似乎已经达到了某种上限

window.onload = function () {

//all my stuff;

}

我知道一开始这样做并不是最明智的想法,但我不想重新编码过去的旧作品。我想更新代码,但后来我发现 window.onload 函数中的左括号和右括号在某个点之后不再匹配。我在 jsfiddle、notepad++ 和 sublime text 中对此进行了测试。我 100% 肯定这与我的任何错误无关。我完全能够追踪问题以及它在我的代码中发生的位置。我可以再添加一行,括号不再匹配了。

问题是空格并没有考虑到问题,只有代码行。

有什么想法吗?

这里有一个小提琴:http://jsfiddle.net/f22gb3L4/

【问题讨论】:

  • 您说您可以在 jsfiddle 中对其进行测试。也许你可以包括那个 jsfiddle?
  • 这不太可能是一个可以通过理论讨论解决的问题。您将不得不以某种方式向我们展示您添加的内容以使其突然失败。如果您可以在 jsFiddle 中证明该失败,那就更好了。如果你在一个函数中有数万行代码,你就会得到你应得的,因为如果我不得不做的第一件事就是把它分解成几个较小的函数,所有这些函数都调用自主要的。
  • 我只是尝试运行一个 100000 行的 onload 事件处理程序,它可以在 IE、Firefox 和 Chrome 中运行。你有比这更多的行吗?
  • 我知道,只要我100% 肯定,这与我的任何错误无关,这通常意味着我搞砸了。也许这就是我。
  • 不,它不是 100000 行代码,可能是 300。问题是它运行良好,但括号在某个点之后不匹配。我会看看我是否能想出一个小提琴并找出问题所在。

标签: javascript function window onload


【解决方案1】:

是的,你可以做到这一点

        // Instead of this
        window.onload = function() {
            console.log('hello dog');
            console.log('hello Cat');
        }
        // use this
        window.onload = helloDog;

        function helloDog() {
            console.log('hello dog');
            helloCat();
        }
        function helloCat() {
            console.log('hello cat');
        }

window.load 只需要一个函数,所以利用它自身的语言提供的好处,你可以更好地组织你的代码,这里糟糕的是这些函数将被全局暴露,你可以命名它们来修复这个问题。

你也可以使用jshint,它会改进你的代码

【讨论】:

    猜你喜欢
    • 2018-06-28
    • 2021-05-09
    • 1970-01-01
    • 2013-01-28
    • 2017-05-19
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多