为什么以下代码在Internet Explorer中不能正常工作(我只测试了IE8):
如果我将
我想这可能与IE的JavaScript引擎中的命名函数有关。该代码在Chrome和Firefox中工作正常。
有任何想法吗?
```
(function(){
this.foo = function foo(){};
foo.prototype = {
bar:function(){
return 'bar';
}
};
})();
var x = new foo;
console.log(x.bar()) // Error: Object doesn't support this property or method
如果我将
foo
的赋值更改为以下内容,则代码可以正常工作:var foo = this.foo = function(){};
我想这可能与IE的JavaScript引擎中的命名函数有关。该代码在Chrome和Firefox中工作正常。
有任何想法吗?
(function /* myFunctionName */ () {...}());
这样可以方便地在以后替换成真正的函数,并且几乎和真正的函数一样易读。 - Chris Middleton