有什么特别的原因我经常遇到:
(function() {
console.log("Hello");
}).call(this);
Run Code Online (Sandbox Code Playgroud)
代替:
(function() {
console.log("Hello");
})();
Run Code Online (Sandbox Code Playgroud)
传递this给对方时应该有同样的效果吗?
似乎有一些性能差异:http://jsperf.com/call-vs-parenthesis.
据推测,该函数中的代码使用this(你刚才拥有的console.log).在与版本call,this 内部的功能是一样的this外面.没有call,this函数内部是全局对象(松散模式)或undefined(严格模式).
如果你没有this在函数中使用,那么没有理由做这个call版本,我倾向于不这样做,因为这是额外的不必要的复杂性(显然是非常小的性能成本).
| 归档时间: |
|
| 查看次数: |
409 次 |
| 最近记录: |