相关疑难解决方法(0)

在IE中命名函数表达式,第2部分

我前一段时间问了这个问题,并对接受的答案感到满意.然而,我刚才意识到以下技术:

var testaroo = 0;
(function executeOnLoad() {
    if (testaroo++ < 5) {
        setTimeout(executeOnLoad, 25);
        return;
    }
    alert(testaroo); // alerts "6"
})();
Run Code Online (Sandbox Code Playgroud)

返回我期望的结果.如果TJCrowder从我的第一个问题的回答是正确的,那么这种技术不应该起作用吗?

javascript internet-explorer anonymous-function

7
推荐指数
2
解决办法
547
查看次数

Javascript:将命名函数分配给变量时的不一致性(命名函数表达式)

任何人都可以解释Internet Explorer和Firefox之间在以下方面的行为差异:

var myNamespace = (function () {
  var exposed = {};

  exposed.myFunction = function myFunction () {
    return "Works!";
  }

  console.log(myFunction()); 
  // IE: "Works!"
  // Firefox: ReferenceError: myFunction is not defined

  console.log(exposed.myFunction());
  // IE: "Works!"
  // FF: "Works!"

  return exposed;
})();

console.log(myNamespace.myFunction()); 
// IE: "Works!"
// FF: "Works!"
Run Code Online (Sandbox Code Playgroud)

在Internet Explorer中这种方法可以让我通过使用调用我的函数从我的命名空间函数内部myFunction()exposed.myFunction().

在我的名字功能之外,我可以使用 myNamespace.myFunction()

在Firefox中,结果是相同的,除了没有用的裸命名函数调用.

应该有用吗?如果不应该,那么为什么不呢?

如果它应该是一个已知的错误?

javascript firefox internet-explorer cross-browser

5
推荐指数
1
解决办法
337
查看次数

在javascript函数中,你能设置this.function = function吗?

我已经遇到了这个jquery插件,我完全理解这是如何工作的:

$.functionone = function(){

    function setOptions(newOptions){
        ...
    }
    this.setOptions = setOptions;
}
Run Code Online (Sandbox Code Playgroud)

我不明白这实际上是做什么的?this.setOptions = setOptions你可以调用没有括号的函数吗?什么是之间的关系this.setOptions,并setOptions通过自身?

javascript jquery jquery-plugins

4
推荐指数
1
解决办法
495
查看次数